我需要檢查字串ft-file
是否在我的 innerHTML 變數中。它必須是完全匹配的,包括連字符。
一個小的例外不應該是匹配的,例如“ft-file2”,也應該是錯誤的。
我用“正則運算式”嘗試了它,但我得到了錯誤的結果(假)。這是小提琴和代碼。
let text = document.getElementsByClassName("fulltext")[0].innerHTML;
var reg = /^ft-file$/;
if (reg.test(text) == true) {
console.log("true");
} else {
console.log("false")
}
<div class="fulltext">
[test="data/ft-file/images/small/red"]
</div>
uj5u.com熱心網友回復:
更新
僅當后跟 a并且緊跟 a 時, lookbehind(?<=[/])
和lookahead(?=[\/])
才匹配。ft-file
/
/
您需要轉義連字符
/(?<=[/])ft\-file(?=[\/])/g
需要轉義的字符(以 為前綴\
)是:
-
^
\
]
正則運算式101
let txt = document.querySelector(".fulltext").innerHTML;
const rgx = /(?<=[/])ft\-file(?=[\/])/gm;
let match = rgx.test(txt);
console.log(match);
<div class="fulltext">
[test="data/ft-file/images/small/red"]
</div>
uj5u.com熱心網友回復:
您的正則運算式包含在^
and$
中,分別表示行的開始和結束。這意味著只有當這是唯一的內容時它才會匹配innerHTML
將您的正則運算式設定為/ft-file/
將實作您正在尋找的內容。
請參閱正則運算式測驗器:https ://regex101.com/r/PMVxBp/1
uj5u.com熱心網友回復:
它應該像搜索“ft-file”或“(ft-file)”一樣簡單,并且預期前后不是數字和非字符。它將結果捕獲為一個組
嘗試這個
[\W\D](ft-file)[\W\D]
https://regex101.com/r/20U1yJ/1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493754.html
標籤:javascript 正则表达式