[英]JavaScript Regular Expression Can't get a matched group
我正在嘗試將javascript正則表達式與exec函數一起使用,並希望獲取組的匹配項。 我只是不知道為什么我沒有比賽。
這是我的代碼:
var elementClass="validate[required]"
var myRegexp = /validate\\[(*)\\]/g;
var match = myRegexp.exec(elementClass);
每次匹配都為null。 我不知道為什么。 它應該變得“必需”。
謝謝您的幫助!
使用此代替:
var myRegexp = /validate\[(.*)\]/;
首先,您只需要一個反斜杠即可轉義-否則,您正在搜索文字反斜杠,其后是您要轉義的特殊含義。
其次, *
僅表示“零或最后一件事情”,在這種情況下沒有意義,因為那里什么也沒有。 .
表示“任何東西”(好了,差不多),所以.*
表示“任何數量的東西”。
最后,這里g
標志是不必要的,尤其是當您嘗試捕獲部分結果時。
1)你必須很多斜線
var myRegexp = /validate\[(.*?)\]/g;
2)如果只想匹配方括號中的部分,則應使用組
var result = match[1];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.