Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何拆分逗号、分号和逗号分隔的短语(周围有分号)?_Javascript_Arrays_Regex_String_Typescript - Fatal编程技术网

Javascript 如何拆分逗号、分号和逗号分隔的短语(周围有分号)?

Javascript 如何拆分逗号、分号和逗号分隔的短语(周围有分号)?,javascript,arrays,regex,string,typescript,Javascript,Arrays,Regex,String,Typescript,如何将逗号、分号和用分号分隔的短语分开,在分号之间用逗号作为分隔符,但在函数中只分隔逗号和分号 字串: var words = "apple;banana;apple, banana;fruit" Regex函数由、和分隔 var result = words.split(/[,;]+/); 该功能的结果是: [ "apple", "banana", "apple", " banana", "fruit" ] 但我希望得到的是,有“香蕉,苹果”,并将其作为一个单独的价值 [ "apple

如何将逗号、分号和用分号分隔的短语分开,在分号之间用逗号作为分隔符,但在函数中只分隔逗号和分号

字串:

var words = "apple;banana;apple, banana;fruit"
Regex函数由、和分隔

 var result = words.split(/[,;]+/);
该功能的结果是:

[ "apple", "banana", "apple", " banana", "fruit" ]
但我希望得到的是,有“香蕉,苹果”,并将其作为一个单独的价值

[ "apple", "banana, apple", " banana", "fruit" ]

那么,作为第二个示例,是否可以将该函数中的两个案例合并到输出中?或者其他优雅的方式?

数组数学比正则表达式简单

客观的
apple;香蕉;苹果、香蕉;水果
[“苹果”、“香蕉、苹果”、“香蕉”、“水果”]

删除空格,在
处拆分,在
处拆分

解决方案
const words='apple;香蕉;苹果、香蕉;水果';
const result=words.split(“”).join(“”).split(‘;’).join(‘,’).split(‘,’);

控制台日志(结果)根据问题苹果香蕉第二个示例(问题更新后)尝试

var words=“苹果;香蕉;苹果,香蕉;水果”
var result=words.split(“;”);

控制台日志(结果)可以使用匹配和替换的组合

在比赛中,我们采用了现有的两种模式

  • 分隔符
    之间的值(?:\w+;\w+,)
  • 值不在分隔符
    \w+之间
  • 现在,根据匹配的组,我们只需使用replace更改所需格式的值

    let words=`apple;香蕉;苹果、香蕉;果`
    设op=words.match(/(?:\w+;\w+,)|\w+;?/g)
    .map(e=>e.replace(/(?:(\w+);(\w+);(\w+);?/g,(m,g1,g2,g3)=>g1?g1+,'+g2:g3))
    
    console.log(op)
    在您的wnted结果中有
    “香蕉,苹果”
    -是否正确?我不明白为什么-你能解释一下并给出更多的例子吗?你不是只想要
    单词吗?拆分(“;”)
    ?为什么
    “香蕉,苹果”
    在你想要的结果中是一个字符串-你能解释规则并给出另一个例子吗?更新的例子two@AlexFF1您使用的是bana secodn示例与第一个示例不匹配-在第一个示例中,您有元素
    “香蕉,苹果”
    但在第二秒内你有了“苹果,香蕉”
    问题是我需要把分号和逗号之间的任何东西作为一个单独的符号来对待value@AlexFF1我认为与所有答案和评论的共同斗争是,我们无法将你的意思解读为“将带有逗号的分号之间的任何内容视为单独的值”-这在您的示例或注释中并不明显。您显然希望以分号分隔,除非有逗号,然后将以前的分号更改为逗号,并将逗号视为分号。??此场景如何“apple;香蕉;苹果、香蕉;水果,橙子..?@AlexFF1什么?你能解释一下你在说什么吗?在这种特殊情况下,预期的产量是多少?
    words.split(';');