[英]Check if exact string is inside "innerHTML"
我需要检查字符串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>
您的正则表达式包含在^
和$
中,分别表示行的开始和结束。 这意味着只有当它是innerHTML
中的唯一内容时才会匹配
将您的正则表达式设置为/ft-file/
将实现您正在寻找的内容。
请参阅正则表达式测试器: https ://regex101.com/r/PMVxBp/1
它应该像搜索“ft-file”或“(ft-file)”一样简单,并且预期前后不是数字和非字符。 它将结果捕获为一个组
尝试这个
[\W\D](ft-file)[\W\D]
仅当ft-file
后跟/
并且紧跟/
时,后视(?<=/)
和前瞻(?=\/)
才匹配。
您需要转义连字符
/(?<=\/)ft\-file(?=\/)/g
需要转义的字符(以\
为前缀)是:
-
^
\
]
let txt = document.querySelector(".fulltext").innerHTML; const rgx = /(?<=\/)ft\-file(?=\/)/g; let match = rgx.test(txt); console.log(match);
<div class="fulltext"> [test="data/ft-file/images/small/red"] </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.