[英]Javascript -- get only the variable part of a regex match
給定:
var regexp = new RegExp("<~~include(.*?)~~>", "g");
javascript中將變量分配給.*匹配的變量的最簡單方法是什么?
我可以這樣做,但它有點難看:
myString.match(regexp).replace("<~~include", "").replace("~~>", "");
JavaScript 應該在正則表達式匹配時返回一個數組對象,其中數組的零索引是匹配的整個字符串,以下索引是捕獲組。 在您的情況下,類似於:
var myVar = regexp.exec(myString)[1];
應將(.*?)
捕獲組的值分配給myVar
。
(來自MDC的報價)
在正則表達式模式中包含括號會導致記住相應的子匹配。 例如,
/a(b)c/
匹配字符'abc'
並記住'b'
。
從.*?
是第一個(也是唯一一個)記住的匹配,在替換字符串中使用$1
:
var foo = myString.replace(regexp, '$1');
編輯:根據您的評論,您也可以(也許有更明確的意圖)這樣做:
var foo = regexp.exec(myString)[1];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.