And*_*rew 12 javascript regex jquery
只是尝试使用javascript的正则表达式.test()功能.
var nameRegex = '/^[a-zA-Z0-9_]{6,20}$/';
if(nameRegex.test($('#username').val())) {
...
}
Run Code Online (Sandbox Code Playgroud)
错误就在这条线上 if(nameRegex.test($('#username').val())) {
调试器在那里打破并说"Uncaught TypeError:undefined不是函数".好像.test()没有定义?不应该吗?
Ami*_*oki 37
就目前而言,nameRegex不是正则表达式而是字符串而且String没有test功能,这就是为什么你会得到那个错误.
删除正则表达式周围的引号.这是正则表达式的字面形式.
var nameRegex = /^[a-zA-Z0-9_]{6,20}$/; //remove the quotes
Run Code Online (Sandbox Code Playgroud)
此外,您可以通过javascript中的固有构造函数从字符串创建RegExp.
var nameRegex = '^[a-zA-Z0-9_]{6,20}$';
var regex = new RegExp(nameRegex);
...
if(regex.test(stringToTest)) {
...
}
...
Run Code Online (Sandbox Code Playgroud)
MDN Docs :: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
注意:创建正则表达式对象时,不要在字符串中提供初始的"/"斜杠...它将添加它们.