регулярка (если возможно)
Всем привет
Есть строка: var str = "Предложение1.Предложение2.предложение3.предложение4."; нужно каждое предложение занести в отдельный <div> чтоб в результате была одна переменная с таким содержанием: var result = <div>Предложение1</div><div>Предложение2</div><div>Предложение3</div><div>Предложение4</div> |
var str = "Предложение1.Предложение2.предложение3.предложение4."; var parts = str.split('.').filter(function(item){return item}); var fragment = document.createDocumentFragment(); for (var i=0; i < parts.length; i++) { var div = document.createElement('div'); div.innerHTML = parts[i]; fragment.appendChild(div); } либо var str = "Предложение1.Предложение2.предложение3.предложение4."; var parts = str.split('.').filter(function(item){return item}); var result = '<div>' + parts.join('</div><div>') + '</div>'; alert (result); |
Вариантики )))
var str = "Предложение1.Предложение2.предложение3.предложение4."; var parts = str.split('.'); parts.pop(); var result = '<div>' + parts.join('</div><div>') + '</div>'; alert (result); var str = "Предложение1.Предложение2.предложение3.предложение4."; var parts = str.match(/[^.]+/g); var result = '<div>' + parts.join('</div><div>') + '</div>'; alert (result); |
до кучи
alert( '<div>' + "Предложение1.Предложение2.предложение3.предложение4".replace( /\./g, '</div><div>' ) + '</div>' ); |
danik.js, рони, nerv Спасибо большое, что нужно) +
|
nerv_, а где крайняя точка? :nono:
|
alert( '<div>' + "Предложение1.Предложение2.предложение3.предложение4.".split(/\.$/)[0].replace( /\./g, '</div><div>' ) + '</div>'); |
Цитата:
slice( 0, -1 ) в чем проблема? ) |
danik.js,
а что делает "filter"? var parts = str.split('.').filter(function(item){return item}); |
Как что? Фильтрует :)
Откидывает пустые строки. Последний элемент то будет представлять из себя пустую строку. Вообще, фильтрующая функция должна проверять item !== '', но приведение строки к булеву типу дает тоже саме практически. |
danik.js,
понятно. туплю. Все предложенные варианты накосячат вот на таком предложении: План перевыполнинли на 0.5% (150мл./л.) по сравн. с прошлой пятилеткой. |
Цитата:
Цитата:
|
nerv_,
в таком случае, слишком сложны, var result = <div>Предложение1</div><div>Предложение2</div><div>Предложение3</div><div>Предложение4</div> было бы достаточно |
Цитата:
|
Цитата:
var str = "Предложение1.Предложение2.предложение3.предложение4."; var parts = str.split('.').filter(function(item){return item}); alert( parts ); работает так, как это var str = "Предложение1.Предложение2.предложение3.предложение4."; var parts = str.split('.').map(function(item){return item}); alert( parts ); ... ну почти ^__^ Цитата:
|
Цитата:
var str1 ="Предложение1.Предложение2.предложение3.предложение4."; var str2 ="План перевыполнинли на 0.5% (150мл./л.) по сравн. с прошлой пятилеткой." function PartsDivider(str){ return str.split(/\.(?=\s*?\[A-Z]|[А-ЯЁ])/mg); } alert(PartsDivider(str1) ) alert(PartsDivider(str2) ) |
Часовой пояс GMT +3, время: 00:20. |