【发布时间】:2012-12-10 13:01:43
【问题描述】:
我正在尝试进一步了解 JavaScript 中的正则表达式。
所以我有一个表单,允许用户提供任何字符串。我想使用该字符串并删除任何不是数字、括号、+、-、*、/ 或 ^ 的字符。我正在尝试编写一个否定的正则表达式来抓取任何无效的内容并将其删除。到目前为止,有关此问题的代码如下所示:
var pattern = /[^-\+\(\)\*\/\^0-9]*/g;
function validate (form) {
var string = form.input.value;
string.replace(pattern, '');
alert(string);
};
此正则表达式在 http://www.infobyip.com/regularexpressioncalculator.php 正则表达式测试器上按预期工作,但始终使用我提供的确切字符串发出警报,而无需在计算器中进行任何更改。任何建议或指示将不胜感激。
【问题讨论】:
-
您不需要转义字符集中的所有内容:
/[^-+()^*\/0-9]/g。 -
@Blender:
不过,你确实需要在正则表达式中转义正斜杠。(虽然我想这可能是为了清楚起见,^没有'也不需要转义。) -
@minitech:奇怪的是,这并没有给 JS 正则表达式引擎带来麻烦。谢谢。
-
@minitech:其实我也想知道同样的事情,但我在 Chrome 中尝试过,它工作得很好,没有任何转义。
-
@MarkByers:真的吗?想不到,我认为这只是 VIM 中的一个问题。我猜 JavaScript 的正则表达式比它们更聪明:)
标签: javascript regex regex-negation