我想使用JavaScript替换HTML页面中的字符串但忽略它,如果它在HTML标记中,例如:
<a href="google.com">visit google search engine</a>
you can search on google tatatata...
Run Code Online (Sandbox Code Playgroud)
我想,以取代google由<b>google</b>,但不是在这里:
<a href="google.com">visit google search engine</a>
you can search on <b>google</b> tatatata...
Run Code Online (Sandbox Code Playgroud)
我试过这个:
regex = new RegExp(">([^<]*)?(google)([^>]*)?<", 'i');
el.innerHTML = el.innerHTML.replace(regex,'>$1<b>$2</b>$3<');
Run Code Online (Sandbox Code Playgroud)
但问题是:我<b>google</b>进入了<a>标签:
<a href="google.com">visit <b>google</b> search engine</a>
you can search on <b>google</b> tatatata...
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题?
您可能会或可能不会使用正则表达式.这取决于您可以精确定义条件.说你想要更换字符串,除非它在HTML标签中不够窄,因为页面上的所有内容都可能在某些HTML标记内(如果没有别的话,则为BODY).
为此可能更好地遍历DOM树,而不是尝试在HTML上使用正则表达式.
| 归档时间: |
|
| 查看次数: |
6446 次 |
| 最近记录: |