Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/jQuery:在特殊字符和结束html标记后插入空格_Javascript_Regex_Replace - Fatal编程技术网

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”)我正在尝试查看是否可以更正它。