代码之家  ›  专栏  ›  技术社区  ›  S Pangborn

如何使用replace()替换Javascript中的星号?

  •  11
  • S Pangborn  · 技术社区  · 16 年前

    使用JQuery,我从本质上是MySQL数据库中某些数据的查询框中提取值。知道大多数用户将使用“*”(星号)作为通配符值,并且MySQL使用“%”字符,我想将任何星号转换为“%”。

    通常情况下,这与使用

    queryString = inputText.replace('*', '%');
    

    但我在这方面几乎没有成功。Javascript的 replace() *Foo*

    我尝试的第二个选项是使用正则表达式,但它也不起作用:

    queryString = inputText.replace(/\x2a/g, '%');
    

    如何用“%”(百分号)替换“*”(星号)?我会想象有一个非常简单的正则表达式,或者我忽略了的东西。

    4 回复  |  直到 16 年前
        1
  •  34
  •   Roatin Marth    16 年前

    尝试:

    queryString = inputText.replace(/\*/g, '%');
    
        2
  •  5
  •   Ates Goral    16 年前

    将字符串拆分为数组,然后将其重新合并为字符串比正则表达式替换更快:

    queryString = inputText.split("*").join("%");
    
        3
  •  0
  •   Pang Ajmal PraveeN    10 年前

    您可以使用:

    queryString = inputText.replace(/[*]/g,"");
    
        4
  •  0
  •   Marcos Villavicencio    8 年前

    我使用此功能隐藏电话号码的一些数字

    function replacePhoneNumbers(number){
        var cuantos = number.length;
        var tele = [];
        for (var i = 0; i < cuantos; i++) {
            if(i < 7){
                tele[i] = number[i].replace(/^\d+$/, "*");
            }
            else{
                tele[i] = number[i];
            }
        }
        
        var full_phone = "";
        for (var i = 0; i < cuantos; i++) {
            full_phone += tele[i];
        }
        return full_phone;
        //return number;
    }
    
    var number = replacePhoneNumbers("7533930048");
    document.getElementById("demo").innerHTML = number;
    <p id="demo"></p>
        5
  •  0
  •   TorNadO    5 年前

    如果你想试着记住一个漂亮的密码

    str.replace(str.substr(1,str.length-3), str.substr(1,str.length-3).replace(/./g,"*"))
    

    输出将是

    1*********xY