我需要在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” '
例如,是否有一种优雅的方法通过regexp来实现这一目标,或者仅使用split函数在某些步骤中进行转换并将字符串部分连接在一起?
任何建议将不胜感激。
答案 0 :(得分:1)
您可以用引号引起来的捕获代替字母([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'));