我有以下字符串:
<h1 class="title">This is some heading?</h1><h2 class="desc">Here is the description for it.</h2>
想让它看起来像:
<h1 class="title">This is some heading? </h1> <h2 class="desc">Here is the description for it.</h2>
上面有两部分:
1,我试过这个:
str = str.replace(/\?/g,'? ');
以上插入空格后?但它很僵硬。我不能对所有特殊字符应用相同的规则。那怎么办呢?
2,我试过这个:
//To entirely remove all opening html tags
str = str.replace(/<.*?>/g, '');
//To replace closing tag with space
str = str.replace(/<\/.*?>/g, ' ');
上面代码的问题是后面部分运行良好。第一部分,即删除所有打开的html标签的代码也会影响关闭的html标签,这是不可取的。那么如何修改上面的代码以便删除开放标记,例如<h1>, <div>,
等?
答案 0 :(得分:0)
匹配:
\s*(?<ws>[<>])\s*
并替换为
$1
答案 1 :(得分:0)
对于您可以使用的第一个问题:
s.replace(/([?%])/g, '$1 ') //you could put more characters within `[..]`
对于打开代码问题,您可以使用:
str.replace(/<[^/].*?>/g, '')
基本上,[abcdef]
表示它是a,b,c,d,e,f中的任何一个的占位符。类似于%
和?
。在类(方括号)中放置^
意味着它是其他字符的占位符,而不是^
后面的字符。因此<[^/]
不接受</
字符串。