2013-10-15 4 views
3

Я использую ng-шаблон, который имеет поле ввода, которое должно принимать только символы на иврите.Нежелательный результат использования ng-pattern (Angular.JS), с символами Unicode

Я узнал, что такое номера юникода. Ивритские символы.

Это моя картина:

$scope.onlyHebrewPattern = /[\u05D0-\u05F3]+/g; 

И моя форма ввода:

<input tabindex=1 type="text" ng-disabled="disableButtons" name="firstname" ng-minlength="2" ng-maxlength="15" ng-model="register.firstName" placeholder="first name" ng-pattern="onlyHebrewPattern" required title="please enter your name"> 

Теперь для большинства входов, модель будет работать и не заселяют $ scope.firstname с неправильными результатами, как: "ABCD".

Но есть такие входы, как: «שד as», которые по какой-то причине принимаются шаблоном.

Я считаю, что проблема связана с определением шаблона. Что-то должно быть неправильно, но я уверен, что u05D0-u05F3 действительно тот диапазон, который мне нужен в моем шаблоне. Так в чем моя проблема?

+0

Похоже, что ng-pattern соответствует началу значения, а не целому значению. См. Http://stackoverflow.com/questions/18746913/ng-pattern-for-only-numbers-will-accept-chars-like-in-angular-js – bobince

ответ

4

Попробуйте это:

$scope.onlyHebrewPattern = /^[\u05D0-\u05F3]+$/g;

Yours соответствует любой строке с древнееврейским характером.

+0

похоже, что это решило проблему. Не могли бы вы объяснить, почему это работает? – lobengula3rd

+0

Специальные символы регулярных выражений^и $ означают «только в начале» и «только в конце» соответственно. Образец, который вы сказали, «соответствует строке, содержащей (hebrew-char) (один или несколько раз). Но« ab (иврит) »соответствует этому описанию - он содержит один иврит. Использование (только для -start) (иврит) (один или более) (только в конце) заставляет ВСЕ символы быть ивритами, так как ивритские символы должны быть рядом с началом и рядом с концом, и не может будь то нееврейские символы в середине. –

+0

эй снова Я не знаю, почему, но этот шаблон не работает, как следует. иногда входы, которые одобрены, почему-то отклоняются. в чем причина для этого? , и если я хочу добавить опцию для добавления символов «-» и «», как добавить их в шаблон регулярного выражения? – lobengula3rd

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