Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   регулярка (если возможно) (https://javascript.ru/forum/misc/35631-regulyarka-esli-vozmozhno.html)

Vampir3 16.02.2013 19:24

регулярка (если возможно)
 
Всем привет

Есть строка:

var str = "Предложение1.Предложение2.предложение3.предложение4.";


нужно каждое предложение занести в отдельный <div>
чтоб в результате была одна переменная с таким содержанием:

var result = <div>Предложение1</div><div>Предложение2</div><div>Предложение3</div><div>Предложение4</div>

danik.js 16.02.2013 19:43

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);

рони 16.02.2013 20:31

Вариантики )))
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);

nerv_ 16.02.2013 22:33

до кучи
alert(
    '<div>' + "Предложение1.Предложение2.предложение3.предложение4".replace( /\./g, '</div><div>' ) + '</div>'

);

Vampir3 16.02.2013 22:34

danik.js, рони, nerv Спасибо большое, что нужно) +

danik.js 16.02.2013 22:42

nerv_, а где крайняя точка? :nono:

Deff 16.02.2013 22:59

alert(
    '<div>' + "Предложение1.Предложение2.предложение3.предложение4.".split(/\.$/)[0].replace( /\./g, '</div><div>' ) + '</div>');

nerv_ 16.02.2013 23:06

Цитата:

Сообщение от danik.js
nerv_, а где крайняя точка?

slice( 0, -1 )

в чем проблема? )

pikko 17.02.2013 18:05

danik.js,
а что делает "filter"?
var parts = str.split('.').filter(function(item){return item});

danik.js 17.02.2013 18:19

Как что? Фильтрует :)
Откидывает пустые строки. Последний элемент то будет представлять из себя пустую строку. Вообще, фильтрующая функция должна проверять item !== '', но приведение строки к булеву типу дает тоже саме практически.


Часовой пояс GMT +3, время: 03:56.