我正在尝试验证一个字符串字段,以检查某些字符,如果它们中的任何一个存在,就会引发一个错误。这是我使用的正则表达式:
var regex = /^[^'\\\/\:\*\?"<>\|-]*$/; // In ServiceNow ServiceNow平台下的JavaScript代码如下:
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等应用程序中可以找到),而不是普通的连字符或引号时,此验证将不起作用。也就是说,当使用普通连字符或引号时,它会引发错误,但当使用拉长连字符或曲线引号时,则不会引发错误。
我甚至尝试将新字符复制粘贴到正则表达式中,但它们只是被替换或视为普通字符,即:
/^[^'’\\\/\:*\?"”<>\|-–]*$/变成了
/^[^''\\\/\:*\?""<>\|-–]*$/当我按下保存键时。
如何将这3个字符的验证合并到一起?
https://stackoverflow.com/questions/38211452
复制相似问题