JQueryには、文字列内の特定の正規表現と一致するために使用できる関数/プラグインがありますか?
たとえば、電子メールの入力ボックスで、電子メールアドレスを取得し、それが正しい形式であるかどうかを確認します。検証する正規表現が入力と一致するかどうかを確認するには、どのjQuery関数を使用する必要がありますか?
私は解決策を探しましたが、何も見つかりませんでした。
私はこれがそれをすると信じています:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
URLや電子メールアドレスなどのパターンが組み込まれているため、独自のパターンを使用することもできます。
正規表現に基づいていくつかの要素を検索する場合は、filter
関数を使用できます。たとえば、すべての入力ボックスでユーザーが数字のみを入力したことを確認したい場合、一致しないすべての入力を見つけて強調表示します。
$("input:text")
.filter(function() {
return this.value.match(/[^\d]/);
})
.addClass("inputError")
;
もちろん、これがこのようなものであれば、フォーム検証プラグインを使用できますが、このメソッドは任意の種類の要素に適用できます。意味を示す別の例:id
が/[a-z]+_\d+/
と一致するすべての要素を検索します
$("[id]").filter(function() {
return this.id.match(/[a-z]+_\d+/);
});
私はjQueryとJavaScriptを使用していますが、私にとってはうまくいきます:
var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if(rege.test($('#uemail').val())){ //do something }
特定の何かを探している場合を除き、文字列を含む通常のJavascriptを使用して、すでに正規表現のマッチングを行うことができます。
たとえば、次のような文字列を使用してマッチングを行うことができます...
var phrase = "This is a phrase";
phrase = phrase.replace(/is/i, "is not");
alert(phrase);
一般的な正規表現マッチング以外に探しているものはありますか?
私のコード:
$("input.numeric").keypress(function(e) { /* pour les champs qui ne prennent que du numeric en entrée */
var key = e.charCode || e.keyCode || 0;
var keychar = String.fromCharCode(key);
/*alert("keychar:"+keychar + " \n charCode:" + e.charCode + " \n key:" +key);*/
if ( ((key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key <= 40)) && e.charCode==0) /* backspace, end, begin, top, bottom, right, left, del, tab */
|| (key >= 48 && key <= 57) ) { /* 0-9 */
return;
} else {
e.preventDefault();
}
});