ABOUTYOU
2019-07-04 15:18:55
JavaScript regex多行標記不起作用我編寫了一個regex從html中獲取字符串,但多行標志似乎不起作用。這是我的模式,我想得到H1標簽中的文本。var pattern= /<div class="box-content-5">.*<h1>([^<]+?)<\/h1>/mi
m = html.search(pattern);return m[1];我創建了一個字符串來測試它。當字符串包含“\n”時,結果總是為空。如果我刪除所有的“\n”,它給了我正確的結果,無論是否有/m標志。我的大梁怎么了?
3 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
/.../s
.
\s
\S
[\s\S]
/<div class="box-content-5">[\s\S]*<h1>([^<]+?)<\/h1>/i
s
s
m
; m
^
$
.
):
/<div class="box-content-5">.*<h1>([^<]+?)<\/h1>/is

米脂
TA貢獻1836條經驗 獲得超3個贊
s
.
m

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
[\s\S]
[^]
(小數點)匹配除行結束符以外的任何單個字符:\n、\r、\u 2028或\u 2029。
在一個字符集中,這個點失去了它的特殊意義,并匹配一個文字點。
注意,m多行標志不會改變點的行為。因此,要匹配跨越多行的模式,可以使用字符集[^](當然,如果不是指舊版本的IE),它將匹配任何字符,包括換行符。
/This is on line 1[^]*?This is on line 3/m
添加回答
舉報
0/150
提交
取消