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

S P*_*orn 14 javascript regex replace

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

通常情况下,这就像使用一样简单

queryString = inputText.replace('*', '%');
Run Code Online (Sandbox Code Playgroud)

但是我没那么成功.Javascript的replace()函数只替换第一次出现,因此它不会替换最后一个星号*Foo*

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

queryString = inputText.replace(/\x2a/g, '%');
Run Code Online (Sandbox Code Playgroud)

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

Roa*_*rth 29

尝试:

queryString = inputText.replace(/\*/g, '%');
Run Code Online (Sandbox Code Playgroud)


Ate*_*ral 5

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

queryString = inputText.split("*").join("%");
Run Code Online (Sandbox Code Playgroud)

  • 这是我找到的解释:http://stackoverflow.com/questions/441018/replacing-spaces-with-underscores-in-javascript/441035#441035 (2认同)