2013-04-22 3 views
1

Я пытаюсь проверить это регулярное выражение с помощью JavaScript. Что мне нужно, это проверить, введено как минимум 2 слова. Под словами я подразумеваю строки с любыми символами, кроме некоторых конкретных. Все хорошо, пока я не закончил строку со специальным символом юникода, например «ā». Тогда выражение не может быть проверено. В настоящее время выражение выглядит следующим образом: /^([^<>\\\/\?&{};#{}\+\*()"=%@,:0-9]{1,}\w){2,}$/iрегулярные выражения и unicode

Любые идеи о том, как проверить выражение в Юникоде в этом случае?

+1

[XRegExp] (http://xregexp.com/) –

+0

См. [Регулярное выражение для соответствия неанглийским символам?] (Http://stackoverflow.com/questions/150033/regular-expression-to-match-non-english-characters), особенно комментарии к принятому ответу. И BTW, у вас есть два '{}' в вашем классе символов. И что вы считаете действительным разделителем слов? – MikeM

+0

См. Мой ответ на [этот вопрос] (http://stackoverflow.com/a/7578937/626273) – stema

ответ

0

На большинстве программирования языке, вы бы попробовать это Unicode Regex:

/^([^<>\\\/\?&{};#{}\+\*()"=%@,:0-9\s]{1,}\p{L}){2,}$/ims 

Или как этот

/^([^\P]{1,}\p{L}){2,}$/ims 

Однако, JS оленья кожа поддержки Unicode, что легко :(

Смотрите здесь пример: Javascript + Unicode regexes

Смежные вопросы