如何在javascript中拆分此字符串?
我有一个任务来分割字符串。首先,要执行一些操作如何在javascript中拆分此字符串?,javascript,node.js,regex,Javascript,Node.js,Regex,我有一个任务来分割字符串。首先,要执行一些操作 let currSynonyms = "['rear neck and choke', 'multiple fractures, multiple hairline injuries', 'leukemia']" currSynonyms = currSynonyms.replace('[', ''); currSynonyms = currSynonyms.replace(']', ''); console.log(currS
let currSynonyms = "['rear neck and choke', 'multiple fractures, multiple hairline injuries', 'leukemia']"
currSynonyms = currSynonyms.replace('[', '');
currSynonyms = currSynonyms.replace(']', '');
console.log(currSynonyms);
Output is this string:
'rear neck and choke', 'multiple fractures, multiple hairline injuries', 'leukemia'
现在我必须拆分它,这样第二个元素就不会被逗号分隔了。
因此,我的输出应该是这样的数组:
['rear neck and choke', 'multiple fractures, multiple hairline injuries', 'leukemia']
let arr = "['abc','xyz','shell's, disease']";
如果我使用同义词.split(','),我会得到:
如果你这样做,你会得到4,但这不是我想要的。
我知道我必须以某种方式使用正则表达式,但我不知道如何使用它?用
“
替换”
,它:
let arr=“['abc','xyz','shell's,disease']”;
const out=JSON.parse(arr.replace(/'(?=,|)])|(?replace'
为”
,它:
let arr=“['abc','xyz','shell's,disease']”;
const out=JSON.parse(arr.replace(/')(?=,|])|(?
这将导致
[ 'rear neck and choke',
'multiple fractures',
'multiple hairline injuries',
'leukemia' ]
这将导致
[ 'rear neck and choke',
'multiple fractures',
'multiple hairline injuries',
'leukemia' ]
如果字符串如下所示,JSON.parse将产生问题:
['rear neck and choke', 'multiple fractures, multiple hairline injuries', 'leukemia']
let arr = "['abc','xyz','shell's, disease']";
这里,第三个元素中有一个引号,当您试图解析它时,它会给出一个错误。
因此,我提出了一个更好的解决方案:
let arr = "['abc','xyz','shell's, disease']";
arr = arr.replace('[', '')
arr = arr.replace(']', '')
arr = arr.split(/',/);
console.log(arr.length);
console.log(arr);
Output:
3
[ "'abc", "'xyz", "'shell's, disease'" ]
如果字符串如下所示,JSON.parse将产生问题:
['rear neck and choke', 'multiple fractures, multiple hairline injuries', 'leukemia']
let arr = "['abc','xyz','shell's, disease']";
这里,第三个元素中有一个引号,当您试图解析它时,它会给出一个错误。
因此,我提出了一个更好的解决方案:
let arr = "['abc','xyz','shell's, disease']";
arr = arr.replace('[', '')
arr = arr.replace(']', '')
arr = arr.split(/',/);
console.log(arr.length);
console.log(arr);
Output:
3
[ "'abc", "'xyz", "'shell's, disease'" ]
由于在给定的示例中,可能还需要考虑用作撇号的单引号字符,因此我建议使用以下基于正则表达式的方法
拆下前端开口支架和单引号
拆下尾部的单引号和结束括号
按以下顺序拆分。。。
- 单引号,可选空格顺序(OWSS),逗号,OWSS,单引号
…例如
const-sample=“[‘后颈部和颈部阻塞’、‘多处骨折、多处发际线损伤’、‘白血病’、‘贝壳病’”;
/**
*1.拆下导孔支架和单引号。
*2.拆下尾随单引号和结束括号。
*3.按以下顺序拆分。。。
*-单引号,可选空白序列(OWSS),
*逗号,OWSS,单引号。
*/
log(`${sample}`);
console.log(示例
.替换(/^\['/,'')
.替换(/'\]$/,'')
.split(/'\s*,\s*'/g)
)
由于在给定的示例中,可能还需要考虑用作撇号的单引号字符,因此我建议使用基于正则表达式的方法,如下所示
拆下前端开口支架和单引号
拆下尾部的单引号和结束括号
按以下顺序拆分。。。
- 单引号,可选空格顺序(OWSS),逗号,OWSS,单引号
…例如
const-sample=“[‘后颈部和颈部阻塞’、‘多处骨折、多处发际线损伤’、‘白血病’、‘贝壳病’”;
/**
*1.拆下导孔支架和单引号。
*2.拆下尾随单引号和结束括号。
*3.按以下顺序拆分。。。
*-单引号,可选空白序列(OWSS),
*逗号,OWSS,单引号。
*/
log(`${sample}`);
console.log(示例
.替换(/^\['/,'')
.替换(/'\]$/,'')
.split(/'\s*,\s*'/g)
)
你对输入字符串格式有多确定?你能控制它吗?有点愚蠢的回答:删除前两个字符和后两个字符,然后用,“
分割。问题更复杂吗?我很确定。我没有太多的控制权,我必须处理这个输入itself@TheMaster是的,这也是我要找的正则表达式可以解决这个问题,但我不知道如何解决。你对输入字符串格式有多确定?你能控制它吗?有点傻的回答:删除前两个字符,然后按,“
分割。问题更复杂吗?我很确定。我不需要太多控制,我必须用这个输入操作itself@TheMaste是的,这也是我想要的。正则表达式可以解决这个问题,但我不知道如何解决?