最近做項目的時候,遇到要使用js或者jquery處理一些字符串的問題,尤其是匹配問題,這類問題,自然而言就歸到正則表達式了。
使用正則表達式,無疑可以幫助開發者減輕代碼量,而且效率更高。
那么,在使用js的test的時候,是否也遇到了reg.test is not a function之類的問題呢?
經過多次調試發現,網上給出的教程大多數是錯誤。
① test(str),判斷字符串str是否匹配表達式,返回一個布爾值。例如: var regx=/user/d+/g; var flag=regx.test(“user12dd”); flag的值為true。
-------------------->出自zaifendou的《js正則表達式語法》
② 使用 var reg = new RegExp("\user/d+g\");
reg.test("user12dd");
使用反雙斜杠代替斜杠。
--------------------------->出自哪里,已經忘了
最后,經過度娘,發現原來是語法錯誤。只是自己沒有按照一定的關鍵字搜索,沒有檢索到自己想要的答案,我一直使用"test is not a function js正則表達式"的字樣檢索,結果忙碌很長時間。但是就在作者寫此文時,換了一種檢索方法:"js test正則表達式",結果出其不意啊,到處都是正確的寫法:
js中正則表達式匹配時,如果使用test函數,就必須不帶引號,並且必須是先定義規則變量。所有帶引號的都是錯誤的!!!
如果不適用test,使用match則可以帶引號。
var re = /^[1-9]d{4,10}$/;
var str = "123456";
alert(re.test(str)); //返回true