正则表达式,用于替换任何字符(数字/、.除外)

regex that replace any chars (except number/, .)

本文关键字:数字 除外 字符 用于 替换 任何 正则表达式      更新时间:2023-09-26

我有一个字符串。我需要解析它,替换任何字符(除了数字(09)、,.

如何使用javascript?

尝试使用:

string.replace(/[a-zA-Z]*/, "");

但似乎不起作用。此外,我需要任何字符,不仅是a-Z(还有?、/、空白等,如前所述,需要

使用否定字符类

[^0-9,.]

并放入任何你不想被替换的字符,它将匹配所有其他字符。

在Regexr 上查看

您可以通过添加一个量词+来优化它,这样它就可以一次替换这些字符的序列,而不是逐个替换。

string.replace(/[^0-9,.]+/g, "");

正如Felix Kling所指出的,使用全局选项g来匹配所有出现的模式非常重要。

请在Regexr 上查看

string.replace(/[^'d,.]+/g, "");

应该这样做。

  1. [^'d.,]的意思是"除数字、逗号或句点以外的任何字符",一个否定的字符类
  2. 使用+而不是*,否则会有很多空匹配项被空字符串替换
  3. 使用/g,以便替换所有实例

尝试替换除数字和.,之外的所有字符,并全局替换:

string.replace(/[^0-9','.]+/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;
    }
}