2016-05-13 6 views
2

私の正規表現をAPIから取得すると、^で始まり$で終わることがよくあります(例えば^-?[0-9]+$)。正規表現を文字列としてng-patternに入力すると、Lexer Errorという結果になります。これは、angularが文字列に^と$をデフォルトで追加するためです。

その後、非常によく

  • If the expression evaluates to a RegExp object, then this is used directly.
  • If the expression evaluates to a string, then it will be converted to a RegExp after wrapping it in^and $ characters. For instance, "abc" will be converted to new RegExp('^abc$').

Angular API referenceから、のは、正規表現オブジェクトに正規表現文字列を変換してみましょう、私は思いました。

json.data.data[i].validateRegex = new RegExp(json.data.data[i].validateRegex, "g"); 

をしかし、それは別のエラーが発生:だから私はこれを試してみました

Error: ngPattern:noregexp 
Expected Regular Expression 
Expected {} to be a RegExp but was {}. 

どのように私は私の正規表現はNGパターンで動作するように入手できますか?できれば^と$を正規表現から取り除かずに。

+0

fiddle/plnkrを追加できますか?あなたの質問に答えることは私たちにとって有益なことです。 –

答えて

2

文字列を正規表現オブジェクトに変換すると機能します。

しかし、ng-patternには{{ }}は含まれません。これをng-pattern="{{ regexObj }}"からng-pattern="regexObj"に変更すると、そのトリックが実行されました。

+0

ご質問ありがとうございます。私はあなたと同じ問題を抱えていた。 – sg552

関連する問題