关于正则表达式:如何使用replace()替换Javascript中的星号?

How do I replace an asterisk in Javascript using replace()?

使用jquery,我从MySQL数据库中一些数据的查询框中提取值。我知道大多数用户将使用一个"*"(星号)作为通配符,并且MySQL使用"%"字符,所以我想将所有星号转换为"%"。

通常,这就像使用

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

但我在这方面几乎没有成功。javascript的replace()函数只替换第一次出现的内容,因此它不会在类似*Foo*的内容中替换最后一个星号。

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

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

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


尝试:

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


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

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


我用这个功能隐藏一些电话号码的数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;

1
2
<p id="demo">
</p>


您可以使用:

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