我想允许0-9,a-z,A-Z和特殊字符。 ,@& (){} [] :;在文本框中。
请帮我写正则表达式。目前我有一个代码,用空数据替换任何单词字符,我想进行更改,以便它也允许上面的特殊字符。
function deleteSpecialChar(txtName, event) {
if (txtName.value != '' && txtName.value.match(/^[\w]+$/) == null) {
txtName.value = txtName.value.replace(/[\W]/g, '');
};
}
$('input[type=text]').live('keypress keyup keydown cut copy paste', function (event) {
deleteSpecialChar(this, event);
});
答案 0 :(得分:2)
只需将要删除的内容放入集合中:
[^0-9a-zA-Z.,@&(){}\[\]:;]+
使用test
方法,您可以使用相同的正则表达式进行检查和替换,而不是使用一个正面和一个负面:
function deleteSpecialChar(txtName, event) {
var re = /[^0-9,a-z,A-Z\.,@&\(\)\{\}\[\]:;]+/g;
if (txtName.value != '' && txtName.value.test(re)) {
txtName.value = txtName.value.replace(re, '');
};
}
答案 1 :(得分:1)
尝试
txtName.value = txtName.value.replace(/[^\w.,@&(){}\[\]:;]/g, '');
以^
开头的字符类是一个否定类,因此这将替换该类中不存在的每个字符。