Javascript正则表达式 - 使用允许列表的非法字符

时间:2012-01-03 11:46:49

标签: javascript regex validation character

我正在尝试使用仅允许字符列表来查找验证字符串的方法。

var valid = validate('This is my string!', 'abcdefghijklmnopqrstuvwxyz');

function validate(value, allowed_chars){
            var reg = new RegExp('[' + allowed_chars + ']');
            var valid = reg.test(value);
            return valid;
}

在这种情况下,我希望函数返回false,因为它在字符串中有一个感叹号,并且没有放入允许的字符中。有什么想法吗?

非常感谢帮助,谢谢!

我不想使用循环来检查每个角色。

3 个答案:

答案 0 :(得分:7)

你的正则表达式只匹配单个字符。添加量词。

var reg = new RegExp('[' + allowed_chars + ']+');

'+'表示'一次或多次出现'

您还想测试此模式是否与整个字符串匹配。为行的开头和结尾添加标记。

var reg = new RegExp('^[' + allowed_chars + ']+$');

您可能还想在正则表达式中添加大写字母和空格。使用online regex tester调试正则表达式。

答案 1 :(得分:2)

您应该在正则表达式

上添加^$
  var reg = new RegExp('^[' + allowed_chars + ']+$');

答案 2 :(得分:0)

你使用element.match(); 此功能允许您匹配正则表达式