字符串部分以粗体文本显示

jan*_*ann 1 javascript

我有一个无序列表,其中包含

<ul id="strip">
     <li><a href="#"><span>This-is a test string</span></a></li>
    <li><a href="#"><span>This is without</span></a></li>
     <li><a href="#"><span>New-test</span></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我需要将“-”之前的文本加粗,因此第一个<li>“This”加粗。

我陷入了应该找到“-”的循环中。

注意:常规 JavaScript,无 JQuery :-)

Eld*_*rov 5

使用stringObject.replace(findstring,newstring)方法。
在您的情况下liString.replace(/\b(.*?-.*?)\b/,"<strong>$1</strong>")
完整的解决方案:

var lists = document.getElementsByTagName("li");
var listsL = lists.length;

for (var i = 0; i < listsL; ++i){
   liString = lists[i].innerHTML;
   liString = liString.replace(/\b([^-]*-[^\b]*?)\b/,"<strong>$1</strong>");
   lists[i].innerHTML = liString;
}
Run Code Online (Sandbox Code Playgroud)