我對使用命名測試(3號線)功能的好奇之下:regex.test():它來自哪裏?
var pattern = /[1-9][1-9]{5}/;
var str = 'this is 248760!';
alert(pattern.test(str));
我看到這個劇本的一本書,不存在test(str)
函數的定義。
它爲什麼會提示true
而不是給出錯誤?
我對使用命名測試(3號線)功能的好奇之下:regex.test():它來自哪裏?
var pattern = /[1-9][1-9]{5}/;
var str = 'this is 248760!';
alert(pattern.test(str));
我看到這個劇本的一本書,不存在test(str)
函數的定義。
它爲什麼會提示true
而不是給出錯誤?
pattern
是正則表達式對象
/[1-9][1-9]{5}/.test("foo"); // valid javascript
正則表達式對象提供許多構件的功能,如test(...)
和toString()
僅舉幾...
/[1-9][1-9]{5}/.toString(); // "/[1-9][1-9]{5}/"
的/
的在開始和結束對於以下內容來說是一種簡短的手段:
new RegExp("[1-9][1-9]{5}"); // /[1-9][1-9]{5}/
pattern
變量實際上是正則表達式對象(因爲/
之前和之後的字符),而正則表達式的成員函數test(...)
是作爲JavaScript的一部分內置的。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test – j08691
我認爲這個問題需要一個更好的主題。 –