我如何用逗号和/或换行和/或空格分割字符串

时间:2019-12-23 00:42:17

标签: javascript regex

您好,我在搜索正则表达式以拆分电子邮件,但到目前为止没有成功。 有什么意义 我想将其分开:

$affectedRows = $pdo->exec("
    LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
      FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
      LINES TERMINATED BY ".$pdo->quote($lineseparator)."
      IGNORE 1 LINES");

o@gmail.com b@gmail.com c@gmail.om

o@gmail.com, b@gmail.com,c@gmail.com

3 个答案:

答案 0 :(得分:1)

您需要用逗号分隔,该逗号由一定数量的空格字符或仅一个或多个空格字符包围:

let strs = ['o@gmail.com b@gmail.com c@gmail.om',
'o@gmail.com, b@gmail.com,c@gmail.com',
'o@gmail.com,\n\
 b@gmail.com, c@gmail.com'];

console.log(strs.map(s => s.split(/\s*,\s*|\s+/)))

答案 1 :(得分:1)

您的正则表达式应为,\s*|\s+

  • 第一部分,\s*带有逗号,后跟0个或多个空格(空格定义为\ n,\ r,\ t,\ f或“”),例如空格+换行+空格
  • 第二部分\s+包含一个或多个空格(无逗号)。

示例:

var emails = `o@gmail.com b@gmail.com,o@gmail.com,
 b@gmail.com, c@gmail.com
o@gmail.com b@gmail.com`

test.split(/,\s*|\s+/); // <- splits to 7 emails

答案 2 :(得分:0)

尝试使用它,用空格分开。

//this is your string
var string = "o@gmail.com b@gmail.com c@gmail.om";
//split it using split function from js, change white space with
//',' - comma
var stringArray = string.split(" ");
document.write(stringArray);
console.log(stringArray);

在此处检查:https://jsfiddle.net/0w6ypos1/