繁体   English   中英

检查确切的字符串是否在“innerHTML”内

[英]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]

https://regex101.com/r/20U1yJ/1

更新

仅当ft-file后跟/并且紧跟/时,后视(?<=/)和前瞻(?=\/)才匹配。

您需要转义连字符

/(?<=\/)ft\-file(?=\/)/g

需要转义的字符(以\为前缀)是:

-
^
\
]

正则表达式101

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM