2016-08-24 14 views
3

はHow'dのみng-patternを使用して入力を可能とする許可:lettersnumbersdotunderscoredash(. _ -)? 、あなたはパターンにドットを追加するNGパターンのみの文字、数字、ドット、アンダースコアおよびダッシュ

要件から判断
$scope.validationPattern = '/^[a-zA-Z\d\-\_]+$/'; 

<input ng-model="model" type="text" ng-pattern="{{validationPattern}}" /> 
+0

そして、あなたは試みました...どんなパターンとコードを使っていますか? –

+0

@WiktorStribiżew:更新された質問を参照してください。 –

+0

偉大な、何がうまくいかない?パターンにドットがないことに注意してください(編集後)。これを ''/^ [a-zA-Z0-9 ._-] + $/''のように試し、' '(' ng-trim = "false" 'を追加します)。 –

答えて

9

必要があります:

$scope.regex = '^[a-zA-Z0-9._-]+$'; 

<input>ng-trim="false"を追加

はすでに

UPDATE以下のものを試してみましたタグを使用して、先頭/末尾のスペースを許可しないようにします。

この1つは

+0

もう1つ質問がありますが、なぜ^ [a-zA-Z0-9 ._- /] + $ 'がスラッシュ('/')を追加したいのですか? –

+0

OK、ちょうど1つの戦略に従ってください:ハイフンをエスケープし、文字クラスの最後に何を追加しても構いません。2)ハイフンは常に文字クラスの最後に置いてください。文字列リテラルでエスケープする場合は、二重バックスラッシュを使用します。 –

+0

ありがとう!それは私のプロジェクトでは機能しません。 '[$ parse:lexerr] Lexer Error:式[^ [a-zA-Z0-9 ._/- ] + $]'の列0-0 [^]の予期しない次の文字?これは入力が以下のようになります: ' ' –

0
[a-zA-Z0-9][A-Za-z0-9._-]* 

それが直接NGパターンに収まらない場合は、この正規表現は、あなたのために十分に適切と思われる参照は次のように、必要な調整を行います。コントローラで

これを使用してテスト

$scope.pattern = /^[a-zA-Z0-9 ._-]+$/;

HTMLの使用中の今

ng-pattern="pattern"

を追加します(。-_)http://www.regextester.com/

は、数字、アルファベットと3つのシンボルを受け入れすること

1
/^[a-zA-Z0-9 ._-]+$/ 

を作品this plunkr

+0

...また、空白を受け入れます。 –

関連する問題