Цитата:
var a = [ {name: 'Иванов А.Г. (тут)', obj: ''}, {name: 'Петров Т. В. текст', obj: ''}, {name: 'Смирнова Ф. адрес', obj: ''}, {name: 'Сидоров И.М.', obj: ''}, ]; var val; for (var i=0; i<a.length; i++) { a[i].name.replace(/^\S+\s+[А-Я]\.(\s?[А-Я]\.)?/,function(Str){ val=Str; a[i].obj=a[i].name.replace(Str,''); return Str; }); a[i].name=val; alert(a[i].name+' - '+a[i].obj); }; |
Если "тут" не содержит точек, то можно удалить лишние мешающие пробелы, а затем найти две части:
var match = 'Иванов А. Г. (тут)'.replace(/\s{2,}/g, ' ').match(/(.+\.\s)([^\.]+)/); //match[1], match[2] содержат искомое |
Или такое...
var arr = [ {name: 'Иванов А.Г. (тут)', obj: ''}, {name: 'Петров Т. В. текст', obj: ''}, {name: 'Смирнова Ф. адрес', obj: ''}, {name: 'Сидоров И.М.', obj: ''}, ]; for (var i=0; i<arr.length; i++) { var a=arr[i].name.match(/^(\S+\s+[А-Я]\.(\s?[А-Я]\.)?)(.*)/); arr[i].name=a[1]; arr[i].obj=a[a.length-1]; alert(arr[i].name+' - '+arr[i].obj) }; |
Всем спасибо, написал так :thanks:
var array = arrayXML2[i].name.split(/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/); if(array[1]){ arrayXML[i].name = array[1] + ' ' + array[2] + '.' + array[3] + '.'; arrayXML[i].element = array[4]; } |
Часовой пояс GMT +3, время: 07:02. |