【发布时间】:2014-08-08 12:03:58
【问题描述】:
有没有办法否定任何正则表达式?我正在使用正则表达式来验证表单上的输入。我现在正在尝试创建一个按钮来清理我的输入。有没有办法让我可以使用用于验证的正则表达式来去除无效字符?
我正在使用这个正则表达式来验证非法字符
<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-attribute 中的正则表达式正在完成他的验证工作。
【问题讨论】:
-
例子会更好。
-
如其所言,您似乎只需要在
/foo/.test("bar")和!/foo/.test("bar")之间进行交换...您能否更具体一些,也许可以发布一些示例代码? -
如果否定插入符号 (
^) 的作用与您想要的相反,为什么不删除它呢?我假设您正在尝试删除标点符号? -
改用
inputElement.data('valRegexPattern')。 -
并不是每一个“随机正则表达式”都可以很容易地被否定,甚至可以用来“去除无效字符”。但是,对于像您这样的有效字符类的简单重复,这是微不足道的。
标签: javascript regex validation