[英]Javascript regex .test() “Uncaught TypeError: undefined is not a function”
只是嘗試使用.test()
函數使用javascript的正則表達式功能。
var nameRegex = '/^[a-zA-Z0-9_]{6,20}$/';
if(nameRegex.test($('#username').val())) {
...
}
if(nameRegex.test($('#username').val())) {
此錯誤在此行上
調試器在那里打破並說“Uncaught TypeError:undefined不是函數” 。 似乎.test()
沒有定義? 不應該嗎?
就目前而言, 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 Docs :: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
注意:創建正則表達式對象時,不要在字符串中提供初始的“/”斜杠...它將添加它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.