自分では理解できないようですが、質問があります。
ユーザーの名を検証したいとします。「ジョン・ウィリアム」のように、間にスペースを入れて複数のパーツを含めることができるものもあります。私がやりたいのは、名前の最初または最後にスペースが含まれているかどうかを調べる正規表現に入力を一致させることです。
さらに、正規表現では、名前に文字(az、小文字と大文字の両方)のみが含まれているかどうかを確認する必要があります。
これは私がこれまでに思いついたものです:
/^\s+[A-z]+|[A-z]+\s+$/
しかし、どういうわけか、この正規表現は他の文字(ダッシュ、アンダースコア、アンパサンドなど)を認識しません。基本的には、入力の最初と最後のどちらにスペースがあるかを教えてくれます。
誰かがここで私を助けることができますか?
編集:
これが私が使用している完全なコードです:
$(document).ready(function() {
$('#firstname, #lastname').bind('keyup blur', function() {
var _input = $(this);
var _illegal = Validate_Regexp(_input.val(), /^\s+[A-Za-z]+|[A-Za-z]+\s+$/);
if (_illegal == true) {
$("#"+_input.attr('id')+".validator").css({
'background-image' : 'url(./images/icons/bullet_red.png)',
});
} else {
$("#"+_input.attr('id')+".validator").css({
'background-image' : 'url(./images/icons/bullet_green.png)',
});
}
});
});
function Validate_Regexp($value, $regexp) {
return $regexp.test($value);
}
編集2:
私はチャーリーの答えで行きます、しかし彼の答えは私が望むだけではなく、名前の2つの部分を持つことを私に強制しました。
コードを次のように変更しました:
var isLegal = /^[a-zA-Z]+(\s+[a-zA-Z]+)?$/.test(stringToTest);
に:
var isLegal = /^[a-zA-Z]+(\s[a-zA-Z]+)*?$/.test(stringToTest);