如何通过使用javascript有选择地添加或删除字符来转换字符串

How to transform a string by selectively adding or removing characters using javascript

本文关键字:删除 字符 字符串 转换 添加 选择地 何通过 javascript      更新时间:2023-09-26

我正在努力解决以下问题:

假设我有一个字符串 'foo.bar.baz'。我想把它转换成foo[bar][baz]

是否有一个整洁的方法来做到这一点使用JavaScript?

splitjoin很容易:

var arr = 'foo.bar.baz'.split('.');
arr.shift() + '[' + arr.join('][') + ']'; // "foo[bar][baz]"

你没有给出足够的边缘情况选项(例如,如果你有一个字符串,即foo)。返回foo[]还是foo ?)。

不管怎样,这是我对这个问题的回答:

function greatFunc(txt) {
    var ls = txt.split('.');
    if (ls.length === 1) {  // edge case here!
        return txt;
    }
    return ls[0] + '[' + ls.splice(1).join('][') + ']';
}
greatFunc('foo.bar.baz') // foo[bar][baz]
greatFunc('foo.bar.baz.kop.pop') // foo[bar][baz][kop][pop]
greatFunc('foo') // foo or foo[] if you delete the if clause.
当然有其他人提到的正则表达式解决方案!

我假设您正在尝试转换具有'的字符串。

var str = 'foo.bar.baz';
var splittedArray = str.split('.');
var result = splittedArray[0];
for(var i = 1; i < splittedArray.length; i++) {
result += '[' + splittedArray[i] + ']';
}

使用正则表达式:

var str = 'foo.bar.baz';
str = str.replace(/'.([a-z]{3})/g, "[$1]");