![](/img/trans.png)
[英]Javascript regex match only words starting with a specific special character
[英]RegEx match only words with no specific words before and after
我目前正在用Javascript写一个函数来标记特定的单词。
我有一个叫做<code> ... </ code>的盒子,我将在其中编写JS代码。 我懒惰地自己设置所有标记以突出显示语法,因此我想拥有一个为我执行此功能的函数。
示例:<obj> this </ obj> .functionName(); <-obj标签将以特定颜色突出显示“ this”。
但是,如果"this"
没有被标记并且像这样发生:
<tab> </ tab> this.functionName()
;
我想标记它,但不是已经标记的"this"
。
这是我的JS代码:
function hightLight(text, tag, html) {
var taggedText = ("<" + tag + ">" + text + "</" + tag + ">");
var oldHTML = "";
do {
oldHTML = html;
html = html.replace(text, taggedText);
} while(html.localeCompare(oldHTML) != 0);//stop if nothing changed
return html;
}
使用此正则表达式:
/this(?!<\/tab>)/
它采用负先行所以它仅匹配this
当后面没有它</tab>
。 您可以这样使用它:
var regex = new RegExp(text + "(?!</" + tag + ">)");
和
html = html.replace(regex, taggedText);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.