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繰り返し使用されるようなものが出発点になると思いますソースexecString#match

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...可能な区切り文字のリストです)。「エリザベス・ペーニャ」や「ジェラルド・ト・フーフト」を寒い中に置き去りにしたくないでしょう!:-)

于 2012-07-16T09:27:09.533 に答える