我有3个正则表达式,但在模式匹配时执行相同的操作,所以我想把所有三个表达式合并为一个。我尝试了很多,但不能得到' |'即'或'在我的正则表达式中工作
regex1:text.replace(/([\u00A9-\u3299])/g, function myFunction(x){ ... }
regex2:text.replace(/(\uD83C[\uDC04-\uDFF0])/g, function myFunction(x){ ... }
regex3:text.replace(/(\uD83D[\uDC00-\uDEC5])/g, function myFunction(x){ ... }
我尝试过这样做,但它不起作用
正则表达式:text.replace(/([\u00A9-\u3299]) | (\uD83C[\uDC04-\uDFF0]) | (\uD83D[\uDC00-\uDEC5])/g, function myFunction(x){ ... }
我很轻松,我试了很多,但对我没有运气。
答案 0 :(得分:3)
regular expression语言非常严格,每个字符都是有意义的,甚至是空格(与空格匹配)。
删除空格:
/[\u00A9-\u3299]|\uD83C[\uDC04-\uDFF0]|\uD83D[\uDC00-\uDEC5]/g
(是的,你也可以在这种情况下删除无用的括号,因为没有必要为整个表达式定义一个组)