如何过滤粘贴在TextArea中的值
How to Filter the value pasted in TextArea
如果我们输入分号分隔的值,就有文本区域,能够处理键盘事件并成功验证。如何在复制粘贴时验证相同内容。
$(function () {
var kpi = document.getElementById('<%=this.d.ClientID%>').value;
var tb = $('#<%= TextBox.ClientID %>');
$(tb).keypress(function (e) {
var regex = new RegExp("[0-9;]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) && !($(this).val().match(/;{2,}/))) {
var as = $(this).val().match(/;/ig) || [];
var len = as.length;
if (len < kpi) {
return true;
}
}
e.preventDefault();
return false;
});
$(tb).keyup(function (e) {
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (($(this).val().match(/[;]{2,}/g))) {
var shortenedString = $(this).val().substr(0, ($(this).val().length - 1));
$(this).val(shortenedString);
return true;
}
e.preventDefault();
return false;
});
$(tb).on('paste input propertychange', function (e) {
//Validate interger with ; on paste and rest not allowed
})
});
您可以尝试使用keyup事件来后期验证输入。在此之前,文本区域中粘贴的值不可用,例如在按键时。您可以通过检查来确定它是否为粘贴,例如:
event.ctrlKey
您可以使用keyup事件,实现的替代尝试可以是这样的:
$(tb).live('keyup', function (e) {
this.value = this.value.replace(/[;]{2,}/g, "");
}
});
这将替换粘贴到文本区域时输入值中的分号。
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- 验证Javascript中的Textarea
- Textarea必需的attribut在javascript中不起作用
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- Angular:使用选择列表选择过滤代码中的对象
- 在单击时过滤 JSON
- 更改代码镜像中TextArea的高度和宽度
- 如何在BookshelfJS中通过加入来过滤结果
- 如何使用javascript过滤复杂的json对象
- “createImageData()”和“new ImageData(()”有何不同
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 过滤AngularJs中的数据
- 通过API调用过滤数据
- 使用angularjs内置过滤器过滤代码中的特定属性
- 如何在重建URL后从URL中传递过滤值,目的是使用Angular2和Typescript实现无限滚动
- 相对于角度控制器中的另一个阵列过滤阵列项目
- 如何在D3.js中绘制地图投影上的点,并使用范围滑块过滤数据
- 如何过滤粘贴在TextArea中的值