有没有办法否定任何正则表达式?我正在使用正则表达式来验证表单上的输入。我现在正在尝试创建一个按钮来清理我的输入。有没有办法让我可以使用用于验证的正则表达式来删除无效字符?
我使用这个正则表达式来验证非法字符
<input data-val-regex-pattern="[^|<>:\?'\*\[\]\=%\$\+,;~&\{\}]*" type="text" />
当单击旁边的按钮时,我将调用此函数:
$('#button').click(function () {
var inputElement = $(this).prev();
var regex = new RegExp(inputElement.attr('data-val-regex-pattern'), 'g');
var value = inputElement.val();
inputElement.val(value.replace(regex, ''));
});
目前,javascript 所做的事情与我想要完成的事情完全相反。我需要找到一种方法来“反转”正则表达式。
编辑:我正在尝试反转 javascript 函数中的正则表达式。 data-val-regex-pattern
属性中的正则表达式正在执行验证工作。
最佳答案
要查找无效字符,只需从正则表达式中去掉 ^
即可。插入符是括号内所有内容的负数。
data-val-regex-pattern="[|<>:\?'\*\[\]\=%\$\+,;~&\{\}]*"
这将返回不需要的字符,以便您可以替换它们。
此外,当您想删除大量非单词字符时,您可以尝试更简单的正则表达式。如果您只想要单词字符和空格,您可以使用如下内容:
data-val-regex-pattern="[\W\S]*"
关于javascript - 否定随机正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25203108/