我在下面有以下字符串(以及社交网络的其他多个字符串),我想搜索social-twitter
和social-facebook
等等(仅限ID定位)。我听说Regex不是解析字符串的最佳选择,但我在这里要做的就是在字符串中搜索ID(它始终是一个链接),然后替换带有值的href。
<li><a id="social-twitter" href="#" target="_blank"><i class="fa fa-twitter" aria-hidden="true"></i></a></li>
现在我知道如何使用前端JavaScript定位来实现这一目标,但我使用的堆栈是Node / Express,显然我无法使用document.getElementById()
- 任何想法?抓住我的头。
答案 0 :(得分:0)
根据您需要解决方案的多样性,您的选择从基本的字符串搜索和替换,到更强大的正则表达式,到将字符串实际解析为HTML并使用像JSDOM这样的库进行操作:{{3} }
例如,如果您确定创建<a>
代码的方式始终遵循类似的模式(即<a
直接跟随id
属性,则直接跟随{ {1}}属性),然后正则表达式可以正常工作。但是如果这些条件不确定,属性的顺序可能会发生变化,或者其他属性可能会介于两者之间,那么您可能不得不选择更强大但更苛刻的JSDOM解决方案。您将能够将任意HTML字符串加载到JSDOM中,使用href
定位元素,操纵其属性,然后检索其更新的document.getElementById
。