Javascript 替换任何字符的正则表达式(数字/除外)

Javascript 替换任何字符的正则表达式(数字/除外),javascript,regex,Javascript,Regex,我有一根绳子。我需要解析它,替换所有字符(除了数字(0到9)、、和) 我如何使用javascript实现它 试用: string.replace(/[a-zA-Z]*/, ""); 但是它似乎不起作用。而且,我需要任何字符,不仅是a-Z(还有?,/,空格,等等,正如前面所说的,,和使用 并放入任何你不想被替换的字符,它将匹配所有其他字符 看到了吗 您可以通过添加一个量词+对其进行优化,这样它可以一次替换这些字符的序列,而不是逐个替换 string.replace(/[^0-9,.]+/g, "

我有一根绳子。我需要解析它,替换所有字符(除了数字(
0
9
)、

我如何使用javascript实现它

试用:

string.replace(/[a-zA-Z]*/, "");
但是它似乎不起作用。而且,我需要任何字符,不仅是a-Z(还有?,/,空格,等等,正如前面所说的,使用

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

看到了吗

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

string.replace(/[^0-9,.]+/g, "");
正如Felix Kling指出的,重要的是使用全局选项
g
匹配所有出现的模式


查看它

尝试替换除数字和
以外的所有字符
并执行全局替换:

string.replace(/[^0-9\,\.]+/g, "");
应该这样做

  • [^\d,]
    表示“除数字、逗号或句点以外的任何字符”,一个被否定的字符
  • 使用
    +
    而不是
    *
    ,否则将有大量空匹配项替换为空字符串
  • 使用
    /g
    以替换所有实例
  • 试试这个 下面的代码是防止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;
        }
    }
    

    创建一个否定字符类:。不要忘记
    g
    lobal修饰符。不要忘记
    g
    lobal修饰符。
    string.replace(/[^\d,.]+/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;
        }
    }