允许0-9,a-z,A-Z和特殊字符。 ,@& (){} [] :;在文本框中

时间:2012-10-01 07:13:23

标签: javascript jquery regex

我想允许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);
});

2 个答案:

答案 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, '');

^开头的字符类是一个否定类,因此这将替换该类中不存在的每个字符。