Javascript regex.test();未捕获类型错误:未定义不是函数;
只是尝试将javascript的正则表达式功能与Javascript regex.test();未捕获类型错误:未定义不是函数;,javascript,jquery,regex,Javascript,Jquery,Regex,只是尝试将javascript的正则表达式功能与.test()函数结合使用 var nameRegex = '/^[a-zA-Z0-9_]{6,20}$/'; if(nameRegex.test($('#username').val())) { ... } 错误在这一行if(nameRegex.test($('#username').val()){ 调试器在那里中断并说“uncaughttypeerror:undefined不是一个函数”没有定义?应该是吗?就目前的情
.test()
函数结合使用
var nameRegex = '/^[a-zA-Z0-9_]{6,20}$/';
if(nameRegex.test($('#username').val())) {
...
}
错误在这一行if(nameRegex.test($('#username').val()){
调试器在那里中断并说“uncaughttypeerror:undefined不是一个函数”没有定义?应该是吗?就目前的情况来看,
nameRegex
不是正则表达式,而是字符串,string
没有test
函数,这就是为什么会出现该错误的原因
删除正则表达式周围的引号。这是正则表达式的字面形式
var nameRegex = /^[a-zA-Z0-9_]{6,20}$/; //remove the quotes
此外,还可以通过javascript中固有的构造函数从字符串创建RegExp
var nameRegex = '^[a-zA-Z0-9_]{6,20}$';
var regex = new RegExp(nameRegex);
...
if(regex.test(stringToTest)) {
...
}
...
MDN文档::
注意:在创建regex对象时,不要在字符串中提供初始的“/”斜杠…它会添加它们。@Andrew,很高兴能提供帮助:)完美答案。谢谢