2016-04-19 9 views
1

- ショートバージョン -角度定数から正規表現を使用するng-pattern

角度定数から正規表現を使用するにはどうすればよいですか?

--long Version--

私は巨大な角1つのプロジェクトに取り組んでいると、私たちは複数のフォームを持っています。これらのフォームの多くは、郵便番号と電話番号のような同じフィールドを持っています。私はng-patternを使用する一貫した方法を探したが、一貫性のために正規表現を1つの場所に置いていた。私はこれに角度定数を使いたいのですが、値を取るためにng-patternを得ることはできません。理由を理解できません。私はNG-パターンに動的正規表現を配置するため、この答えAngularjs dynamic ng-pattern validationを見つけたと私はそれを試してみましたが、その方法は、角の定数のために動作していないようでした

done--まし--What

正規表現を文字列として格納し、HTMLで変換しようとしました。 正規表現の値を返す関数を使用しようとしました。 issue--

https://jsfiddle.net/Michael_Warner/692deLsb/8/

問題の

--jsfiddleは、このコード行にダウンしました。私はNGパターンに正規表現を埋め込む場合は、フィドルに見ることができるよう

ng-pattern="patterns.zip" 

は直接、それは動作します

ng-pattern="/^\d{5}(?:-\d{4})?$/" 

答えて

3
次の2つの方法でそれを行うことができます

1:として文字列リテラル、あなたはスラッシュ倍増する必要があります。

.constant("formPattern", { 
    zip: new RegExp("^\\d{5}(?:-\\d{4})?$") 
}) 

2:正規表現として:

.constant("formPattern", { 
    zip: /^\d{5}(?:-\d{4})?$/ 
}) 

どちらもあなたのフィドルで働いていました。

+0

に定数を追加します。 –

0

ちょうどあなたに感謝動作することに$scope変数

$scope.myPattern = /^\d{5}(?:-\d{4})?$/; 

し、HTMLで

ng-pattern=myPattern 
関連する問題