2012-07-04 3 views
9

У меня есть плагины проверки jQuery (http://docs.jquery.com/Plugins/Validation), установленные на моем веб-сайте.jQuery Validator: Validate AlphaNumeric + Space and Dash

Я использую этот код для проверки буквенно-цифрового текста в текстовом поле, и он работает. но это не позволяет пространство и тире (-).

$.validator.addMethod("titleAlphaNum", function(value, element, param) 
{ 
return value.match(new RegExp("^" + param + "$")); 
}); 

Как заставить его работать с пространством и тире? Благодарю.

ответ

22

работает демоhttp://jsfiddle.net/cAADx/

/^[a-z0-9\-\s]+$/i должен сделать трюк!

г =/г модификатора убеждается, что все вхождения «замены»

я =/я делает случай матч регулярного выражения нечувствительны.

хорошо читать:http://www.regular-expressions.info/javascript.html

Надеется, что это помогает,

код

$(function() { 

    $.validator.addMethod("loginRegex", function(value, element) { 
     return this.optional(element) || /^[a-z0-9\-\s]+$/i.test(value); 
    }, "Username must contain only letters, numbers, or dashes."); 

    $("#myForm").validate({ 
     rules: { 
      "login": { 
       required: true, 
       loginRegex: true, 
      } 
     }, 
     messages: { 
      "login": { 
       required: "You must enter a login name", 
       loginRegex: "Login format not valid" 
      } 
     } 
    }); 

});​ 

Сниму это изображение в 2-х минутах увидеть здесь роберт как это http://jsfiddle.net/5ykup/

enter image description here

+0

bro, ваш код позволяет пользователю вводить пробел и/или тире в качестве первого символа. как сделать первый символ, введенный пользователем, ДОЛЖЕН БЫТЬ только буквенно-числовым? –

+0

@RobertHanson hiya bruv делают это: '/^[A-Za-z] [a-z0-9 \ - \ s] + $/i' или эта ссылка поможет подробнее':) 'this должно помочь: http : //stackoverflow.com/questions/1303746/how-can-i-verify-that-user-name-starts-with-a-letter-and-contains-only-alphanume –

+0

@RobertHanson No Worries bruv ':)' Я собираюсь спать сейчас очень поздно в моем конце. Вы можете создать определенную функцию Regex так же, как и выше, или прочитать это: http://stackoverflow.com/questions/280759/jquery-validate-how-to-add- a-rule-for-regular-expression-validation, будет прочитано 30 минут + другая хорошая статья регулярного выражения, и я считаю, что вы будете счастливы после ':)' Надеюсь, это поможет человеку! –

1

Я думаю, что это будет работать, если вы передадите следующий RegExp, как param:

[A-za-z0-9_\-\s]+ 
+1

Hiya Я считаю, что это все равно не позволит пробелы, просто примечание ':)' add '\ s' для пробела –