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

Mic*_*elH 0 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;
}
Run Code Online (Sandbox Code Playgroud)

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

非常感谢帮助,谢谢!

我不想使用循环来检查每个字符.

Ser*_*sev 7

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

var reg = new RegExp('[' + allowed_chars + ']+');
Run Code Online (Sandbox Code Playgroud)

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

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

var reg = new RegExp('^[' + allowed_chars + ']+$');
Run Code Online (Sandbox Code Playgroud)

您可能还想为正则表达式添加大写字母和空格.使用在线正则表达式测试程序调试正则表达式.