Регулярное выражение, чтобы разрешить все символы алфавита плюс символы Юникода - PullRequest
4 голосов
/ 15 марта 2012

Мне нужно регулярное выражение для разрешить все буквы символов плюс греческий / немецкий алфавит в строке, но заменить эти символы ?,&,^,". с *

Я пропустил список с символами, чтобы убрать вопрос, чтобы упростить вопрос. Я действительно хочу посмотреть, как это построить, а затем включить наборы алфавитов с использованием кодов ASCII.

Ответы [ 3 ]

4 голосов
/ 15 марта 2012

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

 string.replace(/[?\^&]/g, '*');

и добавить столько символов, сколько вы хотите отклонить.Вы также можете добавить диапазоны символов Unicode, которые вы хотите заменить (например, \u017F-\036F\u0400-\uFFFF)

, в противном случае используйте класс, чтобы указать, какие символы не нужно заменять, например, az, ударные / диакритические буквы и греческие символы.

 string.replace(/[^a-z\00C0-\017E\u0370-\03FF]/gi, '*');
4 голосов
/ 15 марта 2012

Вы должны использовать плагин XRegexp вместе с дополнением Unicode .

Если у вас есть это, вы можете использовать современные регулярные выражения, такие как /[\p{L}\p{Nl}]/, которые также обязательно включают те \p{Greek} кодовые точки, которые являются буквами или буквенными числами.Но вы также можете сопоставить /[\p{Latin}\p{Greek}]/, если хотите.

Регулярные выражения Javascript ужасны.Используйте XRegexp.

1 голос
/ 15 марта 2012

Так что-то вроде: /^[^?&\^"]*$/ (это означает, что строка состоит только из символов за пределами пяти, перечисленных вами) ...

Но если вы хотите иметь греческие и юникодные символы (что такое юникод? А? Японский?), Возможно, вам придется использовать http://xregexp.com/ Это библиотека регулярных выражений для javascript, которая содержит символы классы для различных классов символов Unicode (я знаю, что повторяюсь) плюс другие "команды" для обработки Unicode.

...