Показать сообщение отдельно
  #4 (permalink)  
Старый 20.06.2018, 10:04
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

рони,
Да с помощью .match заработало но он изменяет получившийся объект от того каким он был при .split

Пример:
// было
var array = [{name: 'Петров В. Б.'}, {name: 'Не человек'}];

for (var i = 0; i < array.length; i++) {	
var split = array[i].name.split(/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/);
alert(split);
};


Тоесть в данном примере если фамилия, то split[0] = '', split[1] = Петров и тп. А если не фамилия split[0] = 'Не человек'. в этом и был смысл.

Если использовать .math split[0] всегда занят и не работает если не "человек":

var array = [{name: 'Петров В. Б.'}, {name: 'Не человек'}];

for (var i = 0; i < array.length; i++) {	
var split = array[i].name.match(/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/);
alert(split);
};
Ответить с цитированием