У меня есть строка, как это:Javascript регулярное выражение для разделения на любой '&', '-' или '>'
var category = 'New & improved > crazy - whatever'
я хотел бы, чтобы преобразовать его в:
var arr = ['New', 'improved', 'crazy', 'whatever']
Должен работать с любой комбинацией ' & ', ' - ' or ' > '
(пробелы включены).
До сих пор я делаю:
var arr = [];
if(obj.categories[i].name.indexOf(" > ") >= 0){
var arr2 = obj.categories[i].name.split(" > ");
for(var i = 0; i<arr.length; i++){
if (arr[i].indexOf(' & ') >=0){
var newarr = arr[i].split(' & ');
arr.push(newarr);
}else{
arr.push(arr[i]);
}
}
}
if(obj.categories[i].name.indexOf(" - ") >= 0){
var arr2 = obj.categories[i].name.split(" - ");
for(var i = 0; i<arr.length; i++){
if (arr[i].indexOf(' & ') >=0){
var newarr = arr[i].split(' & ');
arr.push(newarr);
}else{
arr.push(arr[i]);
}
}
}else if(obj.categories[i].name.indexOf(" & ") >= 0){
var arr = obj.categories[i].name.split(" & ");
return arr;
}else{
return [obj.categories[i].name];
}
, но это не работает, если есть оба амперсанды и тир в строке. Я чувствую, что регулярное выражение может справиться с этим намного лучше, так как это лучший способ достичь этого и сделать его относительно надежным для разных случаев использования (конечно, только с использованием вышеупомянутых разделителей)?
' 'New & улучшенный> сумасшедший - whatever'.split (/ [&> -] /)' - тривиальное действительно. – Jon
Обучение регулярному выражению упростит вашу жизнь – Buddha