在 JavaScript 中,我将如何使用 regex['John Smith', 'Jane Doe']
从"John Smith - Jane Doe"
哪里-
得到任何分隔符 ( \ / , + * : ;
) 等等?
使用new RegExp('[a-zA-Z]+[^\/|\-|\*|\+]', 'g')
只会给我["John ", "Smith ", "Jane ", "Doe"]
问问题
143 次
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 回答