javascript - 字符串操作 - 将除方括号之外的每个单词括在引号中

标签 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"'

是否有一种优雅的方法来实现这一点,例如使用正则表达式,或者仅使用 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/

相关文章:

javascript - 如何延迟停止循环以继续另一个循环

javascript - 我可以在图像映射区域元素上添加 onclick 事件吗?

javascript - CKEditor 获取范围以在自定义位置插入 HTML

javascript - 根据从 MySQL 数据库返回的 JSON 将单选按钮设置为选中

javascript - Dojo 中 SimpleTextArea 的验证

javascript - 如何使元素假位置 :fixed so it acts fixed until a certain scroll height, 然后附加?

javascript - 调用 IIFE 中的函数

javascript - 返回 Text.search(/[^a-zA-Z]+/) === -1?

javascript - Ubuntu 的 Xampp 替代品

php - 将 js 数组传递给 PHP