我有一個字符串。我需要解析它,替換任何字符(除號(0
到9
),,
和.
正則表達式替換任何字符(數字/,除外)
如何我可以用JavaScript做
與嘗試:?
string.replace(/[a-zA-Z]*/, "");
,但似乎它不工作。此外,我需要任何字符,不僅僅是aZ(還有?,/,空白等等,如上所述,期望如所述,,和。
我有一個字符串。我需要解析它,替換任何字符(除號(0
到9
),,
和.
正則表達式替換任何字符(數字/,除外)
如何我可以用JavaScript做
與嘗試:?
string.replace(/[a-zA-Z]*/, "");
,但似乎它不工作。此外,我需要任何字符,不僅僅是aZ(還有?,/,空白等等,如上所述,期望如所述,,和。
[^0-9,.]
,放在你不想被替換任何字符,它會匹配所有的人。
您可以通過添加一個量詞+
優化它,使得它在一次,而不是每次每個替換這些字符的序列。
string.replace(/[^0-9,.]+/g, "");
飾演Felix克林指出,其重要的使用全局選項g
,以匹配模式的所有地方。
不要忘記'g'lobal修飾符。 – 2012-02-13 14:08:36
@FelixKling謝謝,在Regexr上使用它,在這裏忘了它,修正 – stema 2012-02-13 14:09:38
嘗試更換所有字符,除了數字和.
,
,做全球替換:
string.replace(/[^0-9\,\.]+/g, "");
string.replace(/[^\d,.]+/g, "");
應該做的。
[^\d.,]
表示「除數字,逗號或句點之外的任何字符」,否定character class。+
而不是*
或者您將會有很多空字符替換爲空字符串。/g
因此所有實例都被替換。嘗試這個 下面的代碼是防止字母鍵
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;
}
}
創建一個否定的字符類:http://www.regular-expressions.info/charclass.html。不要忘記'g'全局修飾符。 – 2012-02-13 14:04:26