【问题标题】:How to replace underscores with spaces using a regex in Javascript如何在Javascript中使用正则表达式用空格替换下划线
【发布时间】:2011-07-18 09:18:06
【问题描述】:

如何在 Javascript 中使用正则表达式将下划线替换为空格?

var ZZZ = "This_is_my_name";

【问题讨论】:

  • 任何关于编程语言的提示?正则表达式本身不会替换任何东西。 string.replace(/_/, " ")
  • 哪种语言(看起来像 JavaScript)?这可以在没有正则表达式的情况下完成(但不是在 JavaScript 中;))在 VIM 中::%s/_/ /g
  • 正则表达式不能替代任何东西。他们只能描述一些语法。但是许多语言使用正则表达式来搜索某些字符串。那么你使用什么语言呢?
  • 如何在 Javascript 中使用正则表达式将下划线替换为空格?

标签: javascript regex replace


【解决方案1】:

如果是 JavaScript 代码,写这个,在ZZZ2中转换字符串:

var ZZZ = "This_is_my_name";
var ZZZ2 = ZZZ.replace(/_/g, " ");

此外,您可以在不使用正则表达式的情况下以效率较低但更时髦的方式进行操作:

var ZZZ = "This_is_my_name";
var ZZZ2 = ZZZ.split("_").join(" ");

【讨论】:

  • 引用Crescent Fresh 引用John Resig,实际上现在使用.split("_").join(" ")的后一种方法效率更高。
  • 我同意。我相信第一种方法只会替换字符串中的第一个下划线
  • @AdamJosephLooze 你检查了吗? g 标志负责替换所有出现的事件。
  • 是的。我有一个城市列表,它只在第一个实例中更改了下划线。所以我使用了拆分连接,它对我有用。但我看到其他人都在使用相同的替换,所以它必须正常工作,但它不适合我。我在 for 循环中运行我的以打印出所有城市,它只适用于第一个实例。
  • @AdamJosephLooze 我的两个 sn-ps 都符合 ES3、ES5(和更高)规范。如果您在 使用带有 g 标志的正则表达式 (该标志很重要)的替换方法时遇到问题,那可能是由于错误的 JS 引擎实现或由于代码。你能告诉我你的代码吗,也许我可以帮忙? (也许jsbin.com
【解决方案2】:

正则表达式不是替换字符串中文本的工具,而只是可以在字符串中搜索模式的工具。您需要提供一种编程语言的上下文才能获得您的解决方案。

我可以告诉你,正则表达式 _ 将匹配下划线,但仅此而已。

例如,在 Groovy 中,您会执行以下操作:

"This_is_my_name".replaceAll(/_/," ")
    ===> This is my name

但这只是特定于语言的(replaceAll 方法)..

【讨论】:

    【解决方案3】:

    将“_”替换为“”

    实际实现取决于您的语言。

    在 Perl 中是:

    s/_/ /g
    

    但事实是,如果您用其他东西替换固定字符串,则不需要正则表达式,您可以使用您的语言/库的基本字符串替换算法。

    另一种可能的 Perl 解决方案是:

    tr/_/ /
    

    【讨论】:

    • 你是对的。除了当我写这个答案时,这个问题没有提到任何关于 JavaScript 的内容。
    【解决方案4】:
    var str1="my__st_ri_ng";
    var str2=str1.replace(/_/g, ' ');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多