我試圖讓這個正則表達式返回結束,只有返回"flies a"
簡單的JavaScript正則表達式提取部分開始,以一個字母
s = 'test <!-- flies are little birds --> end';
alert(s.match(/f(.*)a/));
爲什麼這回
flies a
lies
如何我可以做f和強制性的嗎?
謝謝
我試圖讓這個正則表達式返回結束,只有返回"flies a"
簡單的JavaScript正則表達式提取部分開始,以一個字母
s = 'test <!-- flies are little birds --> end';
alert(s.match(/f(.*)a/));
爲什麼這回
flies a
lies
如何我可以做f和強制性的嗎?
謝謝
.match
返回數組。第一個元素是整個匹配文本,每個其他元素是捕獲組的內容。你有一個捕獲組,所以第二個元素是它捕獲的文本。
要麼刪除該組,要麼忽略數組中的其他元素。您有權訪問在任何情況下的第一個:
var match = s.match(/f(.*)a/)[0]; // or /f.*a/
P.S:alert
是一個糟糕的調試工具,使用console.log
或console.dir
代替。
請勿放在括號內。
alert(s.match(/f.*a/));
括號創建一個捕獲組,它允許您指定您對匹配的特定部分感興趣。在這種情況下,你對整個事情感興趣,所以你不需要任何括號。
只是刪除括號或將整個表達式爲額外的括號:
s.match(/f.*a/)[0];
或 s.match(/(f(.*)a)/)[1];
真的很感激你快速的意見,謝謝大家。 – javacoder