【问题标题】:Easiest way to replace one or another string with a value [duplicate]用值替换一个或另一个字符串的最简单方法[重复]
【发布时间】:2014-08-18 21:53:49
【问题描述】:

假设我想将 United States 或 US 的所有实例更改为 U.S. 有没有比运行多个替换更优雅的方法:

function replaceUS()
{
newString = oldString.replace("United States", "U.S.");
newerString = newString.replace("US", "U.S.");
}

我知道如果我需要检查一个巨大的列表,使用循环会很有帮助,但是如果我只有几个选项要检查,有没有更优雅的解决方案。我知道以下内容不起作用,但如果确实如此,那将是我要描述的内容。有没有类似的?

function replaceUS()
{
newString = oldString.replace("United States" || "US", "U.S.");
}

【问题讨论】:

标签: javascript replace


【解决方案1】:

这是一个适用于多次出现的版本。

var x = 'This is United States and US';
var r = x.replace(/(\bUnited States\b|\bUS\b)/g, "u.s.");
console.log(r);

你也可以看到:

http://jsfiddle.net/s5y6msnb/1/

【讨论】:

    【解决方案2】:

    您可以使用正则表达式作为“替换”的第一个参数:

    newString = oldString.replace(/United States|US/, 'U.S.');
    

    这很快就会变得毛茸茸的。您还必须处理一个字符串可能包含多个要替换的字符串实例的事实。此外,具体到您的示例,字符串“美利坚合众国”变成了“美利坚合众国”,这可能不是您想要的。

    【讨论】:

    • 此解决方案仅删除您提到的第一个匹配项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2014-06-13
    • 2017-10-08
    • 2018-06-16
    • 2013-12-03
    • 1970-01-01
    • 2015-01-11
    相关资源
    最近更新 更多