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

Javascript正则表达式-使用允许列表的非法字符,javascript,regex,validation,character,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);

我试图找到一种方法来验证字符串,只使用允许的字符列表

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,因为它在字符串中有一个感叹号,并且没有放入允许的字符中。有什么想法吗

非常感谢您的帮助,谢谢


我不希望使用循环检查每个字符。

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

var reg = new RegExp('[' + allowed_chars + ']+');
“+”表示“一次或多次发生此事件”

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

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

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

您应该在regexp上添加
^
$

  var reg = new RegExp('^[' + allowed_chars + ']+$');
使用element.match();
此函数允许您匹配Regexp

Perfect!这是在乞讨和结束时丢失的标记!