我正在尝试使用仅允许字符列表来查找验证字符串的方法。
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,因为它在字符串中有一个感叹号,并且没有放入允许的字符中。有什么想法吗?
非常感谢帮助,谢谢!
我不想使用循环来检查每个角色。
答案 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(); 此功能允许您匹配正则表达式