JavaScript/jQuery:在特殊字符和结束html标记后插入空格
我有以下字符串:JavaScript/jQuery:在特殊字符和结束html标记后插入空格,javascript,regex,replace,Javascript,Regex,Replace,我有以下字符串: <h1 class="title">This is some heading?</h1><h2 class="desc">Here is the description for it.</h2> 上面是否在后面插入空格?但它是非常严格的。我不能对所有特殊字符应用相同的规则。那么怎么做呢 我试了2次: str = str.replace(/\?/g,'? '); //To entirely remove all openin
<h1 class="title">This is some heading?</h1><h2 class="desc">Here is the description for it.</h2>
上面是否在后面插入空格?但它是非常严格的。我不能对所有特殊字符应用相同的规则。那么怎么做呢
我试了2次:
str = str.replace(/\?/g,'? ');
//To entirely remove all opening html tags
str = str.replace(/<.*?>/g, '');
//To replace closing tag with space
str = str.replace(/<\/.*?>/g, ' ');
//完全删除所有打开的html标记
str=str.replace(//g',);
//用空格替换结束标记的步骤
str=str.replace(//g',);
上面代码的问题是后面的部分工作得很好。第一部分,即删除所有打开的html标记的代码也会影响关闭的html标记,这是不可取的。那么,如何修改上述代码,以便删除开头标记,如、
等?匹配:
\s*(?<ws>[<>])\s*
对于第一个问题,您可以使用:
s.replace(/([?%])/g, '$1 ') //you could put more characters within `[..]`
str.replace(/<[^/].*?>/g, '')
对于打开标记问题,您可以使用:
s.replace(/([?%])/g, '$1 ') //you could put more characters within `[..]`
str.replace(/<[^/].*?>/g, '')
str.replace(//g',)
基本上,
[abcdef]
意味着它是a、b、c、d、e、f中任意一个的占位符。类似于%
和?
。将^
放在类中(方括号)意味着它是任何字符的占位符,而不是紧跟^
的字符。所以如果您想删除html标记,为什么您的示例输出仍然有它们?关于你遇到的问题,你有没有试过先去掉结束标记?太好了!工作起来很有魅力!非常感谢您的解答+解释。这有助于了解幕后情况。快速提问。我正在尝试使用您的解决方案解决第一个问题,它将用空格替换其他特殊字符。如何在其中包含]
?以下是我正在尝试的,请确认这是否正确:s.replace(/([?~
!@$%^&*([u+-=[]{};':“,./%])/g,“$1”)`你需要跳出[,],-
:/([?~!@$%^&*([u+-=\[\]{};':,,,。/%])/g
你好,谢谢你的回复。我尝试了以下代码,它给了我一个语法错误:str=str.replace(\s*(?[])\s*,“$1”)代码>我正在尝试查看是否可以更正它。