2017-01-12 4 views
0

クライアントは入力に任意の値を追加するが、空白だけを追加することはできないことを検証したい。クライアントは、数字、文字または文字を置くことができ、また単語の間に空白を入れることができます。パターンを追加して、htmlパターンでのみ空白でないことを検証するにはどうすればよいですか?

<input class="form-control" 
     name="description" 
     placeholder="Add your description" 
     ng-model="$ctrl.description" 
     pattern="^[\\S]([\\wéáíóúñÑ,.:-¿?!() ])+$" 
     required> 

これをHTMLコードで検証するには、どのようなパターンを入力できますか。

+1

あなたは、角度特定の検証やHTML5の検証を探していますか? –

+0

html5 validation – JVM

答えて

0

編集回答:

あなたは、単に正規表現[\w,./_=?-]+を使用することができます。

内訳と正規表現の説明:
+数量詞 - ([a-zA-Z0-9_]に等しい)1と無制限の時間の間の一致、できるだけ多くの回数、必要に応じて恩返し(貪欲)
\wマッチ任意の単語文字
,.は、リスト内の単一の文字,. //文字通り
_=?-リストでの1文字にマッチした文字に一致する一致しました

var myApp = angular.module('myApp', []); 
 

 
myApp.controller('MyCtrl', ['$scope', 
 
    function($scope) { 
 

 
    $scope.checkSpace = function(event) { 
 
     if (event.keyCode === 32 && typeof $scope.inputBox === 'undefined') { 
 
     event.preventDefault(); 
 
     } 
 
    }; 
 

 
    } 
 
]);
.ng-invalid { 
 
    border: 1px solid red; 
 
} 
 
.ng-valid { 
 
    border: 1px solid green; 
 
} 
 
input:focus { 
 
    outline: none; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> 
 
    <meta charset="utf-8"> 
 
    <title>JS Bin</title> 
 
</head> 
 

 
<body ng-app='myApp'> 
 
    <div ng-controller="MyCtrl"> 
 

 
    <input class="form-control" name="description" placeholder="Add your description" ng-model="inputBox" ng-keydown="checkSpace($event)" pattern="[\w,./_=?-]+" required> 
 

 
    </div> 
 
</body> 
 

 
</html>

その値だけ空間(S)を有する場合ng-invalidクラス要素に追加されることに注意してください。

+0

ご回答いただきありがとうございますが、入力の最初の値が空白であることを避けるにはどうすればよいですか? – JVM

+0

@JVM後で、最初の文字としてではなく、値のスペースを許したいと思うように聞こえます。私は上記の私の答えを更新しました。チェックアウトしてください。 –

+0

ありがとうございます、これは問題を解決しますが、これは数字や文字だけです。 "、。/ _ =? - "のような記号を入力するとこのパターンは機能しません。 – JVM

0

基本的なhtml5検証では、次のスニペットを使用します。タイトルは、エンドユーザへのエラーの説明として表示されます。

<input class="form-control" 
 
     name="description" 
 
     placeholder="Add your description" 
 
     ng-model="$ctrl.description" 
 
     pattern=".*\S+.*" 
 
     title="Description is required" 
 
     type="text" 
 
     required>

関連する問題