var html = "<p><a href='http://www.cnblogs.com/rubylouvre/'>Ruby Louvre</a>by <em>司徒正美</em></p>"; var text = html.replace(/<(?:.|\s)*?>/g, ""); console.log(text);//VM247:3 Ruby Louvreby 司徒正美
求大神给我讲解下这个正则表达式,实在看不明白π-π。。。谢谢啦
/ # 开始符 < # 就是<这个字符 ( # 括号表示捕获, 意思是能在 正则的group函数中, 获取相应的值 ?: # 这个又取消括号的捕获功能, 就是上一行的说明无效了. . # 单个字符 | # 逻辑或的意思, 范围为括号中 \s # 空白 ) # 一对括号 * # 一个或多个, 这儿表示 一个或多个 括号中的内容 ? # 非贪婪, 表示 前面()* 这个组能少就少 > # 字符> /g # 表示全局搜索, 就是 match_all 的意思.
你这儿是替换功能, 就是把 <xxxx> 这种替换成空
可以去 https://regex101.com/ 自己试试看,左边上面可以输入表达式。下面输入测试的被匹配内容。右边有详细解释。另外这个正则式的|s是浪费的,只需要写/<(?:.)*?>/g即可,如果不需要对捕获组做操作,非捕获组也没有必要。可以更简化为/<.*?>/g
|s
/<(?:.)*?>/g
/<.*?>/g
你这儿是替换功能, 就是把 <xxxx> 这种替换成空
可以去 https://regex101.com/ 自己试试看,左边上面可以输入表达式。下面输入测试的被匹配内容。右边有详细解释。
另外这个正则式的
|s
是浪费的,只需要写/<(?:.)*?>/g
即可,如果不需要对捕获组做操作,非捕获组也没有必要。可以更简化为/<.*?>/g