2016-05-03 3 views
1

У меня есть 3 регулярных выражения, но выполняйте одно и то же действие, когда шаблон совпадает, поэтому я думал о слиянии всех трех выражений в один. Я много пробовал, но не могу получить '|' то есть 'или' работать в моем регулярном выраженииregex: Объединить 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){ ... }

Я пробовал легко, я много искал, но мне не повезло.

+5

Каждый счет символов, вы можете 't помещать пробелы только потому, что это красивее –

+2

Да, теперь это работает, я чувствую себя такой нуб. Мое обновленное регулярное выражение: 'text.replace (/ ([\ u00A9- \ u3299] | \ uD83C [\ uDC04- \ uDFF0] | \ uD83D [\ uDC00- \ uDEC5])/g, функция myFunction (x) {.. .} ' – iamsaksham

ответ

3

Язык regular expression язык очень строгий, причем каждый символ является значимым, даже пробелы (a соответствует пробелу).

Удалить пространства:

/[\u00A9-\u3299]|\uD83C[\uDC04-\uDFF0]|\uD83D[\uDC00-\uDEC5]/g 

(да, вы также можете удалить бесполезные круглые скобки в данном случае, так как нет никакого смысла определения группы для всего выражения)

Смежные вопросы