0

我有一个这样的字符串,例如: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);

谢谢。

4

5 回答 5

7

你真的很接近,你需要做的就是添加/到你的正则表达式

你应该能够做到这一点:

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

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

于 2012-05-28T20:12:48.873 回答
6

要在正则表达式中使用文字/,您必须对其进行转义。\/为此而写。

最终脚本应如下所示:

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

你的整个循环是完全没有必要的,所以我删除了它。

于 2012-05-28T20:13:00.667 回答
0

The character / has a special meaning in regex (you know, it encloses it /regex/modifiers). Special characters have to be escaped with backslash \.

test[i].replace(/\//g, 'something');
于 2012-05-28T20:14:40.393 回答
0

As mentioned before, you have to escape a slash as \/. However, it might be a more robust approach to remove all characters that are not digits:

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

\D is the negated version of \d, i.e. not digit.

于 2012-05-28T20:23:03.580 回答
0

This only leaves the value, which might be a lot less complex

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

alert(value);
于 2012-05-28T20:35:54.000 回答