我需要在 JavaScript 中转换一个字符串,并将每个单词用引号括起来。字符串中的每个单词都用“.”分隔。 字符串中的结构和单词数量可能会有所不同,并以以下形式出现: 'abc.cde.fgi' 或 'abc.cde.fgi[0]'、'abc.cde[0].fgi.xyz'、'abc.cde[1].fgi.xyz' 等等。
转换的结果应该是:
'abc.cde.fgi' -> '"abc"."cde"."fgi"'
'abc.cde.fgi[0]' -> '"abc"."cde"."fgi"[0]'
'abc.cde[1].fgi.xyz' -> '"abc"."cde"[1]."fgi"."xyz"'
是否有一种优雅的方法来实现这一点,例如使用正则表达式,或者仅使用 split 函数在某些步骤中进行转换并将字符串部分连接在一起?
如有任何建议,我们将不胜感激。
最佳答案
您可以将连续的字母 ([a-z]) 替换为用引号括起来的捕获内容。通过添加全局标志,它将替换找到的多个运行实例。
str.replace(/([a-z]+)/g, '"$1"')
示例:
function quoteWords(str) {
return str.replace(/([a-z]+)/g, '"$1"');
}
console.log(quoteWords('abc.cde.fgi'));
console.log(quoteWords('abc.cde.fgi[0]'));
console.log(quoteWords('abc.cde[1].fgi.xyz'));
关于javascript - 字符串操作 - 将除方括号之外的每个单词括在引号中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52611592/