删除除0-9 + - / *和^之外的任何字符

时间:2012-12-24 00:02:55

标签: javascript regex regex-negation

我正在尝试进一步理解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正则表达式测试程序,但始终使用我提供的确切字符串进行警报,而不对计算器进行任何更改。任何建议或指示将不胜感激。

1 个答案:

答案 0 :(得分:10)

replace方法不会修改字符串。它创建一个带有替换结果的新字符串并返回它。您需要将替换结果分配回变量:

string = string.replace(pattern, '');