使用JQuery,我从MySQL数据库中的某些数据的本质查询框中提取值。知道大多数用户将使用'*'(星号)作为通配符值并且MySQL使用'%'字符,我想将任何星号转换为'%'。
通常情况下,这就像使用
一样简单queryString = inputText.replace('*', '%');
但是我没那么成功。 Javascript的replace()
函数仅替换第一次出现,因此它不会替换*Foo*
我尝试的第二个选项是使用正则表达式,它也不起作用:
queryString = inputText.replace(/\x2a/g, '%');
如何用'%'(百分号)替换'*'(星号)?我想象有一个非常简单的正则表达式,或者我忽视的东西。
答案 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