2016-05-03 16 views
1

正規表現は3つではありますが、パターンが一致すると同じ動作をするので、3つの表現をすべて1つにマージすることを考えました。私はたくさん試しましたが、傾けることはできません '|'すなわち 'または' 私の正規表現で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){ ... }

を、私はそれが、そのdoesntの仕事 正規表現をやってみました:text.replace(/([\u00A9-\u3299]) | (\uD83C[\uDC04-\uDFF0]) | (\uD83D[\uDC00-\uDEC5])/g, function myFunction(x){ ... }

私は簡単に覚えました私はたくさんの検索を試みましたが、私にとっては運がありませんでした。

+5

すべての文字カウント、することができますそれはもっときれいだからちょうどスペースを入れてください –

+2

うん、それは今働く、私はそのようなnoobを感じる。私の更新された正規表現: 'text.replace(/([\ u00A9- \ u3299] | \ uD83C [\ uDC04- \ uDFF0] | \ uD83D [\ uDC00- \ uDEC5])/ g、function myFunction(x){.. }} ' – iamsaksham

答えて

3

regular expression言語は非常に厳密であり、すべての文字は意味を持ち、空白も含まれます(はスペースに一致します)。

スペースを削除します。

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

(全体の発現のためのグループを定義しない点がありませんよう、はい、あなたも、この場合は役に立たない括弧を削除することができます)

関連する問題