今天遇到了一个问题,在于app端交互上有几条评论的@好友的数据带上了后台处理过的字符串,类似这样
把处理过的<user id="xxx" name="xxx">XXX</user>也带上了,这显然是不合理的,我们可以通过字符串的replace过滤,但是中间的内容是随机的并不是规定死的id和name等,这个时候就用到了正则
处理方式如下
这里看几种replace
《1》 str.replace("xx","")
这种只能过滤一个
《2》 str.replace.(/xx/g, "")
是匹配全局的符合条件的
但是如果条件中也带/,比如我们上面要过滤的</user>,就不能用上面这种方法,而是:
《3》str.replace(new RegExp("</user>", "g"), " ")
过滤文本本身带“/”的
当我们用第三种方式过滤掉</user>后,整个字符串应该是这样的
接下来重头戏,用正则匹配首尾内容来去掉<user id = "xxx" name = "xxx">
只留下正常的文本内容
采用str.replace(new RegExp("<user[^>]*>", "g"), " ")
全局正则匹到符合的内容,然后过滤掉(忽略中间内容)
接下来就是见证奇迹的时刻
正常匹配到了,只要结构一样,里面有多个也没问题,正则太有魅力了!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。