如何基于三个定界符分割字符串?

时间:2019-12-29 07:02:20

标签: javascript jquery vue.js split vue-component

我的代码是这样的:

<template>
    ...
        <p v-for="club in clubs">{{club}}</p>
    ...
</template>
<script>
export default {
  data: () => ({
    clubs: ''
  }),
  mounted () {
    let dataClub =  "- City\\t - MU\\t - Liverpool\\t - Arsenal\\t - Chelsea"
    // let dataClub =  "- City\n - MU\n - Liverpool\n - Arsenal\n - Chelsea"
    // let dataClub =  "City;MU;Liverpool;Arsenal;Chelsea"
    let dc = dataClub.split(/[\n;]/)
    this.clubs = dc
  }
}
</script>

dataClub是动态的。它可以用;分隔,也可以用\n分隔。除此之外,也可以用符号\\t

分隔。

如果有3个分隔符,如何进行分割?

我尝试了let dc = dataClub.split(/[\n;\\t]/),但是没有用

3 个答案:

答案 0 :(得分:0)

引用此答案: https://stackoverflow.com/a/19313633/4298881

let separators = ['\\\\t', ';', '\\n'];
let regex = new RegExp(separators.join('|'), 'g');
dataClub.split(regex); // ["- City", " - MU", " - Liverpool", " - Arsenal", " - Chelsea"]

答案 1 :(得分:0)

您可以在正则表达式中使用|or运算符)分割多个字符串/字符。该代码段包含一些示例,包括\\t\t(最后一个是tab字符)。

const splitData = str => str.split(/\\t|\n|;|\t/);

const dataClub1 =  "- City\\t- MU\\t- Liverpool\\t- Arsenal\\t- Chelsea"; // \\t
const dataClub2 =  `- City
- MU
- Liverpool
- Arsenal
- Chelsea`; // \n
const dataClub3 =  "- City;- MU;- Liverpool;- Arsenal;- Chelsea"; // ;
const dataClub4 =  `- City\t- MU\t- Liverpool\t- Arsenal\t- Chelsea`; // \t

console.log(splitData(dataClub1));
console.log(splitData(dataClub2));
console.log(splitData(dataClub3));
console.log(splitData(dataClub4));
.as-console-wrapper { top: 0; max-height: 100% !important; }

答案 2 :(得分:0)

在将分隔符放入数组中时(dataClub.split(/ ['\ t','\ n',';'] /)也会拆分城市,因为正则表达式就是其中之一。使正则表达式完全匹配分隔符会有所帮助。

let dataClub =  "- City\\t - MU\\t - Liverpool\\t - Arsenal\\t - Chelsea";
const splittedDc = dataClub.split(/\\t|\n|;/);
console.log(splittedDc);

相关问题