簡體   English   中英

JavaScript正則表達式無法獲取匹配的組

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

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