2016-08-30 8 views
1
<input name="city" ng-pattern="([\w ]+)" 
     invalid-message="'City is invalid.'" 
      ng-model="city" type="text" 
      required-message="'You must enter a city.'" required > 

私は私が唯一alphabets and spaces aloneを許可する必要がどこ上記のように入力フィールドを持っていますが、上記の1は私に"City is invalid"を投げて...失敗しました。私はパターンの異なる組み合わせで試してみましたが、すべてはng-pattern="([a-zA-z ]+)"正規表現は、唯一

+0

'a-zA-z'は' a-zA-Z'でなければなりません – zzzzBov

+0

これはまだ失敗します... – Shane

+0

は文字列の値を取るために 'ng-pattern'ではありませんか?おそらくそれを値にバインドするか、引用符で囲む必要があります。 – zzzzBov

答えて

2

ng-pattern式は文字列または正規表現オブジェクトに評価されません。また

ng-pattern="'[A-Za-z ]+'" 

、変数にng-patternをバインドします:あなたはハードコードに正規表現をしたい場合は

、それは文字列として評価されていますように、引用符でラップ

HTML:
ng-pattern="regex" 
JS:
$scope.regex = '[A-Za-z ]+'; 
文字列パラメータを渡すときに、彼らが暗示されているよう ^$が不要であることを

注:

式が文字列に評価された場合、それは、それをラップした後、正規表現に変換されます

^および$文字です。

0

は、以下の最初から文字列の末尾に、だけでなく、空白文字AZから任意の文字に一致します...失敗:

^[A-はZa - z \ s] * $

+1

[ドキュメントごとに "式が文字列に評価された場合は、^および$文字でラップした後に正規表現に変換されます。"](https://docs.angularjs.org/api/ng/directive/ ngパターン)。 – zzzzBov