Это не возвращает то, что я, или regex101 ожидает:Regex: .exec() функция не возвращает ожидаемый результат
var myString = "Accel World|http://www.anime-planet.com/anime/accel-worldAh! My Goddess|http://www.anime-planet.com/anime/ah-my-goddess";
var reg = /[^|]*/g;
var regResponse = reg.exec(myString);
console.log(regResponse);
согласно regex101, это должно соответствовать все, кроме '|' и вернуть его, но он соответствует только первой строке, Accel World, в отличие от всего, кроме '|'.
Как исправить это?
То, что вы просили, чтобы оно совпадало, равно нулю или более ** последовательным ** символам, которые не '' '. Почему бы просто не использовать 'myString.split ('|')' для получения массива строк, разделенных '|'? – Phil
Интересно, любой подсказку, почему regex101 возвращает все, а не просто подряд? Это кажется странным, потому что это очень рекомендуется. Возможно, будет .split, спасибо за идею. – ActionON
Возможно, потому, что он не использует 'exec', который ведет себя по-другому, как вы ожидаете. См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec#Finding_successive_matches – Phil