正则表达式删除破折号及其后的所有内容

时间:2018-03-11 09:08:29

标签: javascript regex

我有一个功能可以删除短划线以及标题后面的所有内容。 这是JS

<script>
(function() {
var str2 = document.querySelector('.dash-remove').innerHTML;
   var txt2 = str2.replace(/ -.*$/g,"");
   document.querySelector('.dash-remove').innerHTML = txt2;
})();
</script>

Html就是这样的

<h2 class="dash-remove">Testing - this function</h2>

然而,这不起作用,它不会删除短划线或文本。

我试图像这样删除短划线:

<script>
(function() {
var str2 = document.querySelector('.dash-remove').innerHTML;
   var txt2 = str2.replace('-',"");
   document.querySelector('.dash-remove').innerHTML = txt2;
})();
</script>

这是有效的,所以我认为它与正则表达式有关?任何想法?

1 个答案:

答案 0 :(得分:0)

正如OP的评论中所讨论的,这可能是由于课程多次出现。然后,您应该使用document.querySelectorAll以及NodeList#forEach

&#13;
&#13;
(function() {
  document.querySelectorAll('.dash-remove').forEach(item => {
    item.innerHTML = item.innerHTML.replace(/ -.*$/g, '');
  });
})();
&#13;
The Html is something like this

<h2 class="dash-remove">Testing - this function</h2>
<h2 class="dash-remove">Testing - that function</h2>
&#13;
&#13;
&#13;