1

在 JavaScript 中,我将如何使用 regex['John Smith', 'Jane Doe']"John Smith - Jane Doe"哪里-得到任何分隔符 ( \ / , + * : ;) 等等?
使用new RegExp('[a-zA-Z]+[^\/|\-|\*|\+]', 'g')只会给我["John ", "Smith ", "Jane ", "Doe"]

4

2 回答 2

2

试试这个,没有正则表达式:

var arr = str.split(' - ')

编辑

多个分隔符:

var arr = str.split(/ [-*+,] /)
于 2012-07-16T09:28:32.893 回答
1

如果你想匹配多个单词,你需要在你的字符类中有一个空格。我认为类似的东西/[ a-zA-Z]+/g将是一个起点,与exec或通过重复使用String#match,如下所示:Live copy | 来源

var str = "John Smith - Jane Doe";
var index;
var matches = str.match(/[ a-zA-Z]+/g);
if (matches) {
  display("Found " + matches.length + ":");
  for (index = 0; index < matches.length; ++index) {
    display("[" + index + "]: " + matches[index]);
  }
}
else {
  display("No matches found");
}

但它非常有限,大量的名称包含 AZ 以外的字符,您可能希望反转逻辑并使用否定类(/[^...]/g,其中...是可能的分隔符列表)。你不想让“Elizabeth Peña”或“Gerard 't Hooft”被冷落!:-)

于 2012-07-16T09:27:09.533 回答