Javascript 正则表达式删除破折号及其后的所有内容
我有一个函数,可以从标题中删除破折号和破折号之后的所有内容。 这是JSJavascript 正则表达式删除破折号及其后的所有内容,javascript,regex,Javascript,Regex,我有一个函数,可以从标题中删除破折号和破折号之后的所有内容。 这是JS <script> (function() { var str2 = document.querySelector('.dash-remove').innerHTML; var txt2 = str2.replace(/ -.*$/g,""); document.querySelector('.dash-remove').innerHTML = txt2; })(); </script>
<script>
(function() {
var str2 = document.querySelector('.dash-remove').innerHTML;
var txt2 = str2.replace(/ -.*$/g,"");
document.querySelector('.dash-remove').innerHTML = txt2;
})();
</script>
(功能(){
var str2=document.querySelector('.dash remove').innerHTML;
var txt2=str2.replace(/-.*$/g,“”);
document.querySelector('.dash remove')。innerHTML=txt2;
})();
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>
(功能(){
var str2=document.querySelector('.dash remove').innerHTML;
var txt2=str2.replace('-',“”);
document.querySelector('.dash remove')。innerHTML=txt2;
})();
这是有效的,所以我想这和正则表达式有关?有什么想法吗?正如OP评论中所讨论的,这可能是因为课堂上出现了多次。然后,您应该与以下内容一起使用:
(函数(){
document.querySelectorAll('.dash remove').forEach(item=>{
item.innerHTML=item.innerHTML.replace(/-.*$/g');
});
})();代码>
Html是这样的
测试-此函数
测试-该函数
正则表达式工作正常。还有什么不同之处吗?@user6537157我只是在思考——可能是因为这个类中有不止一个元素,并且它在第一个元素之后停止了吗?@MariaL是的,这就可以解释了。使用forEach
查找示例。改用jQuery<代码>$(')。删除破折号)。每个(…)`@MariaL请参阅下面的更新答案。问题是标题是动态加载的,所以querySelectorAll不会work@MariaL然后在动态加载标题时,将document.querySelectorAll
部分移动到。如果以后添加了更多,您可以在显示它们之前调整它们的标题。