javascript - 字符串替换,但仅适用于引号内的子字符串

标签 javascript angular typescript

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .


1年前关闭。







Improve this question




我有一种情况,给定的字符串是hello,"sai,sur",ya,teja给定字符串的预期输出是hello,sai-sur,ya,teja引号之间的逗号必须替换为 -字符和字符串的其余部分应保持原样。

最佳答案

您可以使用 "([^"]+)" 获取引号内的字符串(Regex demo)。这会将不带引号的字符串获取到捕获组。然后,替换所有 ,-在匹配的字符串中。
第二个参数为 replace 是函数,这个替换函数的第一个参数是整个匹配的子字符串,包括引号。第二个参数是捕获组。由于您要删除 "从输出中,您可以直接使用捕获组参数。

const input = `hello,"sai,sur",ya,teja`,
      output = input.replace(/"([^"]+)"/g, (_, g) => g.replace(',', '-'))

console.log(output)

关于javascript - 字符串替换,但仅适用于引号内的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64457509/

相关文章:

angular - 将初始状态对象初始化为空对象而不是未定义的

javascript - 如何在http策略的validate方法中访问请求url?

javascript - 禁用表单元素

javascript - getElementbyID,有人可以告诉我为什么这不起作用吗?

json - 无法使用 Angular 6 和 ASP.NET MVC5 加载本地数据

javascript - 错误 : Permission denied to access property "rejection" in angler 2

typescript - 强制泛型方法参数是传入的完整联合

javascript - 在 Angular 中将图像 url 转换为 base64

javascript - 在 JavaScript 中检查代码是否在 WinStore (WinJS) 应用程序中运行

javascript - 将列索引转换为对应的列字母