Я пытаюсь проверить строковое поле, чтобы проверить определенные символы и поднять ошибку, если они есть. Это регулярное выражение, которое я использую :Разница между - и - или 'и' или "и"
var regex = /^[^'\\\/\:\*\?"<>\|-]*$/; // In ServiceNow
код JavaScript в ServiceNow
платформы выглядит следующим образом:.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var regex = /^[^'\\\/\:\*\?"<>\|-]*$/;
var ans = g_form.getValue('u_native_renaming_suffix');
if(!regex.test(ans)){
alert('Please enter valid string');
return;
}
}
Он прекрасно работает для всех включенных символов Однако, когда удлиненные дефис (–
) или соблазнительной одинарной или двойной кавычки (“
, ”
, ‘
, ’
) (которые мы находим в приложениях, таких как MS Word), вместо обычной дефисы или кавычек эта проверка не работает. То есть, это вызывает ошибку, когда используются обычные дефис или кавычки, но не когда используются удлиненные дефис или кривые кавычки.
Я даже пытался копировать-вставить новые символы в регулярном выражении, но они просто заменяются или обработаны как нормальные, а именно:
/^[^'’\\\/\:*\?"”<>\|-–]*$/
превращается в
/^[^''\\\/\:*\?""<>\|-–]*$/
когда Я нажал save.
Как включить подтверждение для этих трех символов?
Пожалуйста, продемонстрируйте код вашего предлагаемого решения там, где вы пытались скопировать-вставить символы. – Xufox
Да, пожалуйста, предоставьте код без контекста использования регулярного выражения, трудно дать конкретный ответ – Taegost
Держу пари, это будет дубликат [Включая дефис в символьной скобке регулярных выражений?] (http://stackoverflow.com/q/3697202/4642212). – Xufox