регулярное выражение для проверки не работает - PullRequest
0 голосов
/ 09 июня 2010

У меня есть "текстовое описание" внутри формы, где пользователь может ввести описание элемента.

Это проверяется с помощью javascript перед отправкой формы.

Одна из проверок-steps это:

  else if (!fld.value.match(desExp)){

И desExp:

 var desExp = /^\s*(\w[^\w]*){3}.*$/gm;

Теперь моя проблема, это прекрасно работает во всех случаях, кроме описаний, где описание НАЧИНАЕТСЯ со специальным символом шведского языкаязык (å, ä, ö).

Это не будет работать:

    åäö hello world

Но это будет:

    hello world åäö

Какие-нибудь исправления?

Спасибо

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Если я не понимаю, вы просто хотите убедиться, что строка содержит как минимум 3 символа слова?\ s * в начале говорит ему искать как можно больше пробелов.Тогда шаблон (\ w [^ \ w] ) будет соответствовать любому символу слова, за которым следует ноль или более несловарных символов.{3} будет утверждать, что есть три символа слова.. в конце будет соответствовать остальной части строки.

Так что, если мое понимание и разбивка верны, то, что вы хотели бы, это, верно?

/(\w\W*){3}/gm

Это будет соответствовать любой строке, содержащей 3 символа слова, независимо от того, что внутрииз них.Это немного отличается от вашего, так как ваш не требует ничего, кроме пробела перед первым словом символа.Я не уверен, что это то, что вы хотели или нет, но если это так, просто дайте мне знать, и я изменю это ...

Редактировать На самом деле, Iнашел этот вопрос , который связан с:

Таким образом, учитывая это, вы могли бы сделать что-то вроде этого:

var desExp = /^\s*([\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][^\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*){3}.*$/gm;

Блок [\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF] будет соответствовать любому символу слова (либоUTF8 или Latin-1).

1 голос
/ 09 июня 2010

Я думаю, что более широкая категория будет работать, что-то вроде:

/^\s*([\wåäö][^\w]*){3}.*$/gm;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...