Javascript使用正则表达式在公司名称周围添加双引号

Javascript使用正则表达式在公司名称周围添加双引号,javascript,regex,Javascript,Regex,我有一行数据,我想在公司名称(“Test1,Inc”)周围添加双引号 原件:1234567890,姓名\“姓名\”,更多姓名,99999,Test1,Inc,2017-01-01 00:00:00 应为:1234567890,Name\“The Name\”,More Name,99999,“Test1,Inc”,2017-01-01 00:00:00 我没能把它弄清楚。任何精通regex的人都知道为什么 let a = "12345, 67890, Name \"The Name\", Mor

我有一行数据,我想在公司名称(“Test1,Inc”)周围添加双引号

原件:
1234567890,姓名\“姓名\”,更多姓名,99999,Test1,Inc,2017-01-01 00:00:00

应为:
1234567890,Name\“The Name\”,More Name,99999,“Test1,Inc”,2017-01-01 00:00:00

我没能把它弄清楚。任何精通regex的人都知道为什么

let a = "12345, 67890, Name \"The Name\", More Name, 205298, Test1, Inc, 2017-01-01 00:00:00";
a= a.replace(/(,)(.*,.*Inc)(,)/g, `${'$1'}\"${'$2'}\"${'$3'}`)
console.log(a);
您可以使用
/([^,]+,[^,]*Inc)/g
;此处使用
[^,]
匹配非逗号字符:

let a=“1234567890,Name\“The Name\”,更多姓名,205298,Test1,Inc,2017-01-01 00:00:00”;
a=a.replace(/([^,]+,[^,]*Inc)/g,“$1”)
控制台日志(a)您可以使用
/([^,]+,[^,]*Inc)/g
;此处使用
[^,]
匹配非逗号字符:

let a=“1234567890,Name\“The Name\”,更多姓名,205298,Test1,Inc,2017-01-01 00:00:00”;
a=a.replace(/([^,]+,[^,]*Inc)/g,“$1”)

控制台日志(a)正则表达式中没有任何内容阻止
*
包含其他逗号。因此,第一个
(,)
匹配字符串中的第一个逗号,
(.*Inc)
匹配所有到最后一个
Inc
,第二个
(,)
匹配其后的逗号

将其更改为
[^,]*
,这样它将只匹配不包含其他逗号的名称

也不需要使用模板字符串进行替换<代码>$1
$2
等不是变量,它们是通过
replace()
方法实现的

如果不想在公司名称中包含空格,则应在第一个捕获组中包含
\s*

let a=“1234567890,Name\“The Name\”,更多姓名,205298,Test1,Inc,2017-01-01 00:00:00”;
a=a.replace(/(,\s*)([^,]*,[^,]*Inc)(,)/g,“$1”$2”$3”)

控制台日志(a)正则表达式中没有任何内容阻止
*
包含其他逗号。因此,第一个
(,)
匹配字符串中的第一个逗号,
(.*Inc)
匹配最后一个
Inc
之前的所有内容,第二个
(,)
匹配后面的逗号

将其更改为
[^,]*
,这样它将只匹配不包含其他逗号的名称

也不需要使用模板字符串进行替换<代码>$1
$2
等不是变量,它们是通过
replace()
方法实现的

如果不想在公司名称中包含空格,则应在第一个捕获组中包含
\s*

let a=“1234567890,Name\“The Name\”,更多姓名,205298,Test1,Inc,2017-01-01 00:00:00”;
a=a.replace(/(,\s*)([^,]*,[^,]*Inc)(,)/g,“$1”$2”$3”)
控制台日志(a)