Как проверить хотя бы два слова с помощью плагина проверки jquery? - PullRequest
2 голосов
/ 30 января 2011

Итак, у меня есть это:

jQuery.validator.addMethod("tagcheck", function(value, element) { 
  var space = value.split(' ');
  return value.indexOf(" ") > 0 && space[1] != ''; 
}, "At least two words.");

Прекрасно работает, но если у меня есть пробел перед первым символом или два пробела между словами, это не работает

Есть идеи? Спасибо

1 Ответ

4 голосов
/ 30 января 2011

Между двумя словами:

var string = "one  two";
var space = string.split(" "); // ["one", "", "two"] There is a space between the first
// space and second space and thats null.

Пробел перед первым символом.

var string = " foo bar";
var location = value.indexOf(" "); // returns 0 since the first space is at location 0

Вам нужно использовать регулярное выражение.

var reg = new RegExp("(\\w+)(\\s+)(\\w+)");
reg.test("foo bar"); // returns true
reg.test("foo  bar"); // returns true
reg.test(" foo bar"); // returns true

См. .test и RegExp.

\w соответствует любому буквенному символу. \s соответствует любому пробелу.

Давайте включим это в ваш фрагмент кода для вас:

var tagCheckRE = new RegExp("(\\w+)(\\s+)(\\w+)");

jQuery.validator.addMethod("tagcheck", function(value, element) { 
    return tagCheckRE.test(value);
}, "At least two words.");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...