Регулярное выражение Javascript .test не работает в некоторых случаяхJquery

Программирование на jquery
Ответить
Anonymous
 Регулярное выражение Javascript .test не работает в некоторых случаях

Сообщение Anonymous »

Я дал HTML и эти две функции. Идея в том, что мне нужно отображать предупреждение, когда пользователь вводит нелатинские символы

Код: Выделить всё

Type your message here...

Код: Выделить всё

     $("#card-personalize-text").on('change keyup', function () {
if (!unsupportedCharsAlertShown && checkDoesTextIncludesUnexpectedCharacters($(this).text())) {
alert(unsupportedCharsMessage);
unsupportedCharsAlertShown = true;
}
});

Код: Выделить всё

function checkDoesTextIncludesUnexpectedCharacters(text) {
console.log(text);
console.log(!/^[A-Za-z0-9\/?!.:(){}]*$/.test(text));
return !/^[A-Za-z0-9\/?!.:(){}]*$/.test(text);
}
По какой-то причине checkDoesTextIncludesUnexpectedCharacters всегда возвращает true.
Например, когда вводишь текст «Тест» в #card-personalize-text
1st вывод журнала консоли 'Text'
2-й вывод true
Что странно, если я жестко кодирую текст при вызове функции, например

Код: Выделить всё

if (!unsupportedCharsAlertShown && checkDoesTextIncludesUnexpectedCharacters('Test'))

Код: Выделить всё

checkDoesTextIncludesUnexpectedCharacters
работает и возвращает false.
Фрагмент стека:

Код: Выделить всё

let unsupportedCharsAlertShown = false;
const unsupportedCharsMessage = "Unsupported character!";

$("#card-personalize-text").on('change keyup', function () {
if (!unsupportedCharsAlertShown && checkDoesTextIncludesUnexpectedCharacters($(this).text())) {
alert(unsupportedCharsMessage);
unsupportedCharsAlertShown = true;
}
});

function checkDoesTextIncludesUnexpectedCharacters(text) {
console.log(text);
console.log(!/^[A-Za-z0-9\/?!.:(){}]*$/.test(text));
return !/^[A-Za-z0-9\/?!.:(){}]*$/.test(text);
}

Код: Выделить всё

Type your message here...




Подробнее здесь: https://stackoverflow.com/questions/783 ... some-cases
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»