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