字符串替换但仅用于引号内的子字符串

Sai*_*rya 7 javascript typescript angular

我有一种情况,给定的字符串是

hello,"sai,sur",ya,teja

并且给定字符串的预期输出是

hello,sai-sur,ya,teja

引号之间的逗号必须替换为-字符,字符串的其余部分应保持原样。

adi*_*iga 4

"([^"]+)"您可以使用(正则表达式演示)获取引号内的字符串。这会将不带引号的字符串获取到捕获组。然后,将匹配字符串中的所有替换为,-

第二个参数是replace函数,这个替换函数的第一个参数是整个匹配的子字符串,包括引号。第二个参数是捕获组。由于您想"从输出中删除 ,因此可以直接使用捕获组参数。

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

console.log(output)
Run Code Online (Sandbox Code Playgroud)