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

时间:2009-10-02 14:54:20

标签: javascript regex replace

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

通常情况下,这就像使用

一样简单
queryString = inputText.replace('*', '%');

但是我没那么成功。 Javascript的replace()函数仅替换第一次出现,因此它不会替换*Foo*

之类的最后一个星号

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

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

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

5 个答案:

答案 0 :(得分:25)

尝试:

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

答案 1 :(得分:4)

将字符串拆分为数组然后将其连接回字符串比正则表达式替换更快:

queryString = inputText.split("*").join("%");

答案 2 :(得分:0)

您可以使用:

queryString = inputText.replace(/[*]/g,"");

答案 3 :(得分:0)

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

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>

答案 4 :(得分:0)

如果您想尝试轻松地记住密码

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

输出将是

1*********xY