【问题标题】:How do I replace an asterisk in Javascript using replace()?如何使用 replace() 替换 Javascript 中的星号?
【发布时间】:2010-12-03 08:39:16
【问题描述】:

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

通常,这就像使用

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

但我在这方面收效甚微。 Javascript 的 replace() 函数仅替换第一次出现,因此它不会替换 *Foo* 之类的最后一个星号

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

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

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

【问题讨论】:

  • 实际上,"*Foo*".replace(/\x2a/g, '%') 为我工作。那个有什么问题?或者它在哪个浏览器中失败了?
  • 我很有可能在那个上搞砸了一些东西。我刚刚再次测试它并且它正在工作 - 很奇怪。我正在 Firefox 3.5 nightlies (Shiretoko) 和 Epiphany (webkit) 中进行测试。
  • 另外,它很容易在最新的每晚中得到修复。我应该保留旧版本进行测试。

标签: javascript regex replace


【解决方案1】:

试试:

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

【讨论】:

  • 如此简单,却又如此艰难。太棒了:)
【解决方案2】:

将一个字符串拆分成一个数组,然后再将它连接回一个字符串比正则表达式替换要快:

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

【讨论】:

  • 我从未见过这种方法,但我肯定会自己做一些测试并尝试一下。谢谢!
  • 有趣。需要在 CPU 和内存上进行一些基准测试...除非您对大文本进行替换,否则我怀疑我们会看到很多速度提升。
  • 这是我找到的解释:stackoverflow.com/questions/441018/…
【解决方案3】:

你可以使用:

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

【讨论】:

    【解决方案4】:

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

    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;
    &lt;p id="demo"&gt;&lt;/p&gt;

    【讨论】:

      【解决方案5】:

      如果您想尝试易于记忆的密码

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

      输出将是

      1*********xY
      

      【讨论】:

        猜你喜欢
        • 2016-05-21
        • 2013-02-23
        • 1970-01-01
        • 1970-01-01
        • 2019-01-21
        • 2015-10-11
        • 1970-01-01
        • 2010-11-19
        • 1970-01-01
        相关资源
        最近更新 更多