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

如何使用replace()替换Javascript中的星号?,javascript,regex,replace,Javascript,Regex,Replace,使用JQuery,我从本质上是MySQL数据库中某些数据的查询框中提取值。知道大多数用户将使用“*”(星号)作为通配符值,并且MySQL使用“%”字符,我想将任何星号转换为“%” 通常情况下,这与使用 queryString = inputText.replace('*', '%'); 但我在这方面几乎没有成功。Javascript的replace()函数只替换第一个出现的星号,因此它不会替换类似*Foo* 我尝试的第二个选项是使用正则表达式,但它也不起作用: queryString = in

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

通常情况下,这与使用

queryString = inputText.replace('*', '%');
但我在这方面几乎没有成功。Javascript的
replace()
函数只替换第一个出现的星号,因此它不会替换类似
*Foo*

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

queryString = inputText.replace(/\x2a/g, '%');
如何用“%”(百分号)替换“*”(星号)?我会想象有一个非常简单的正则表达式,或者我忽略了的东西。

试试:

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

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

queryString = inputText.split("*").join("%");
您可以使用:

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

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

函数replacePhoneNumber(数字){
var cuantos=数量。长度;
var-tele=[];
对于(var i=0;i

如果您想尝试使用触感优美的密码来记忆密码

str.replace(str.substr(1,str.length-3), str.substr(1,str.length-3).replace(/./g,"*"))
输出将是

1*********xY

实际上,
“*Foo*”.replace(/\x2a/g,“%”)
对我有效。那个有什么问题?或者它在哪个浏览器中失败了?我很可能在那个浏览器上搞砸了。我刚刚又测试了一次,它工作起来很奇怪。我正在测试Firefox3.5Nightlies(Shiretoko)和Epiphany(webkit)。而且,它很容易在最新的nightly中修复。我应该保留旧的构建来进行测试。我从未见过这种方法,但我肯定会自己做一些测试并尝试一下。谢谢有趣。需要一些基准测试,包括CPU和内存。。。除非你在一个大的文本上进行替换,否则我怀疑我们会看到多少速度提升。我发现了一个解释:很简单,但很难。真棒:)