字符串处理-除方括号

时间:2018-10-02 15:28:35

标签: javascript

我需要在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函数在某些步骤中进行转换并将字符串部分连接在一起?

任何建议将不胜感激。

1 个答案:

答案 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'));