簡體   English   中英

Javascript regex .test()“Uncaught TypeError:undefined不是函數”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM