我有一个字符串。我需要解析它,替换任何字符(数字除外(0
到9
),,
和.
。
如何使用javascript进行操作?
试过:
string.replace(/[a-zA-Z]*/, "");
但似乎它不起作用。此外,我需要任何字符,不仅是a-Z(也是?,/,空格等等,如所说的那样,,和。
答案 0 :(得分:6)
[^0-9,.]
并输入任何你不想被替换的角色,它将匹配所有其他角色。
您可以通过添加量词+
来优化它,以便它一次替换这些字符的序列,而不是每个字符都替换。
string.replace(/[^0-9,.]+/g, "");
正如费利克斯·克林所指出的那样,使用全局选项g
来匹配所有模式都很重要。
答案 1 :(得分:6)
string.replace(/[^\d,.]+/g, "");
应该这样做。
[^\d.,]
表示“除数字,逗号或句号之外的任何字符”,否定character class。+
代替*
,或者您将使用空字符串替换许多空匹配。/g
以替换所有实例。答案 2 :(得分:1)
尝试替换除数字和.
,
以外的所有字符并全局替换:
string.replace(/[^0-9\,\.]+/g, "");
答案 3 :(得分:0)
试试这个 下面的代码是防止alpha键
onKeypress="return Custom(event,'[0-9]');"
function Custom(e, cPattern) {
var key = [e.keyCode || e.which];
var pattern = new String(cPattern);
var keychar = String.fromCharCode([e.keyCode || e.which]);
var pattern1 = new RegExp(pattern);
if ((key == null) || (key == 0) || (key == 8) ||
(key == 9) || (key == 13) || (key == 27)) {
return true;
}
else if (pattern1.test(keychar)) {
return true;
}
else {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
}
}