正则表达式替换字符串“ - ”和“/”

时间:2012-05-28 20:11:21

标签: javascript jquery regex

我有一个这样的字符串,例如: 09223-2993/120029

我需要使用正则表达式替换-/

我该怎么做?

这就是我所做的,替换-的工作,但我无法找到一种方法来重新/

    var test = $("#myvalue").val().split("");

    for(var i=0; i < test.length; i++) {
        test[i] = test[i].replace(/-/g, '');
    }

    value2 = test.join("" );

    alert(value2);

感谢。

5 个答案:

答案 0 :(得分:7)

您非常接近,您需要做的就是将/添加到正则表达式

你应该能够做到这一点:

 test[i] = test[i].replace(/[-/]/g, '');

因为-对于正则表达式并不特殊,所以使用/使用上面的反斜杠来转义它,或者将它放在[]中以表示字符类。

答案 1 :(得分:6)

要在正则表达式中使用文字/,您必须将其转义。写\/即可。

最终脚本应如下所示:

var test = $("#myvalue").val().replace(/[-/]/g,'');
alert(test);

你的整个循环事情是完全没必要的,所以我将其删除。

答案 2 :(得分:0)

角色/在正则表达式中具有特殊含义(你知道,它包含它/regex/modifiers)。必须使用反斜杠\转义特殊字符。

test[i].replace(/\//g, 'something');

答案 3 :(得分:0)

如前所述,您必须以\/转义斜杠。但是,删除所有不是数字的字符可能是一种更强大的方法:

test[i] = test[i].replace(/\D/g, '');

\D\d的否定版本,即不是数字。

答案 4 :(得分:0)

这只留下了值,这可能不那么复杂

var value = $("#myvalue").val().replace(/[^0-9]/g, '');

alert(value);