在nodejs中使用正则表达式过滤多个分隔符

时间:2017-09-14 03:03:24

标签: node.js regex

我有多个带有多个分隔符,;:/|\""的字符串的电子邮件。

我试图滑动并添加数组。

我几乎都会遇到小问题 我知道我的正则表达式有问题。

节点JS代码:

var x = "mmmm lll\"kkkk\jjj/iiii,hhhh:gggg+ffff-eee+dddd;cccc|bbbb:aaaa";

    var separators = [' ', '\\\+', '-',  ';', '"',  '\\|','//', '\\|',  '\\\(', '\\\)', '\\*', '/', ':', '\\\?'];
    console.log(separators.join('|'));
    var tokens = x.split(new RegExp(separators.join('|'), 'g'));
    console.log(tokens);

这里是输出:

|\+|-|;|"|\||//|\||\(|\)|\*|/|:|\?
[ 'mmmm@gmail.com',
  'lll@gmail.com',

'KKKK @ gmail.comjjj @ gmail.com',   的 'IIII @ gmail.com,HHHH @ gmail.com',

'gggg@gmail.com',
  'ffff@gmail.com',
  'eee@gmail.com',
  'dddd@gmail.com',
  'cccc@gmail.com',
  'bbbb@gmail.com',
  'aaaa@gmail.com' ]

1 个答案:

答案 0 :(得分:0)

[1]您可以在分隔符列表中添加|

[2]当你声明字符串,时,它假定它必须逃脱x之后的字符串,所以如果你显示\,你会看到它没有x分隔符。因此,将分隔符更改为\

[3]还为\\添加分隔符。

在nodejs中使用的新更新代码:

\