2012-04-16 18 views
1

emberjs私はこのフィールド検証正規表現

}のようなフィールドemberjsカスタムを持っています)。フロントエンドで

は、私はこのような正規表現を代入しています:

<p>{{view Rewards.NameTextField size="50px" label="First Name" Regex="/^[A-Za-z-'.\s]+$/"}}</p> 

「this.get( 『正規表現は』)」のDataViewで、それは

に評価され、私が行うときので、それが問題です私の正規表現が間違って評価させる

//^[A-Za-z-'.\s]+$//

。どのように私はテンプレートのビューにRegexの値を動的に割り当てるのですか?

ありがとうございました!

+0

正規表現はかなり壊れています。あなたは何をしようとしているのですか? –

+0

あなたが正しいです、正規表現は壊れています。私は始めと終わりにスラッシュを取り除いたので、今ではRegex = "^ [A-Za-z - '。\ s] + $"となっています。スラッシュを使用すると、App jで正規表現の値を取得するときに余分なスラッシュが発生します。ありがとう! – manni

答えて

2

ですが、また、あなたの文字クラス内のエスケープされていないハイフンを持っています。これは、リテラル-と一致しません。あなたは最後のハイフンは文字通り扱われることをしたい場合は、次のいずれかに正規表現を変更する必要があります。

  • ^[A-Za-z'.\s-]+$から
  • ^[A-Za-z\-'.\s]+$先頭にハイフン - - エンド
  • ^[-A-Za-z'.\s]+$でハイフンハイフン
  • をエスケープ

私はスタックオーバーフローでこの間違いがかなり多いことを知っています。文字クラス内でのハイフンの動作については、this article from regular-expressions.infoを参照してください(「文字クラス内のメタキャラクタ」を参照)。

0

最初と最後にスラッシュを削除しましたので、今はちょうどRegex="^[A-Za-z-'.\s]+$"であり、動作しています! App jsの正規表現の値を取得するときにスラッシュを追加すると、スラッシュが追加されます。その結果、私はスラッシュを取り除く提案しようとしていました

<p>{{view Rewards.NameTextField size="50px" label="First Name" Regex="^[A-Za-z-'.\s]+$"}} </p>