Схватить первые два предложения (до второй точки) текстовой строки с помощью jQuery? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть этот HTML (например, тексты могут различаться по длине):

<p>Stockholm is a city in Sweden. Moscow is a city in Russia. Here is Berlin, it's the capital of Germany.</p>

Я хочу взять первые два предложения этого текста и извлечь их, используя JavaScript / jQuery.Более того, я также хочу извлечь оставшуюся часть текста и поместить его в свой собственный элемент.

Итак, в основном я хочу получить следующее:

<p>Stockholm is a city in Sweden. Moscow is a city in Russia.</p>

и

<p>Here is Berlin, it's the capital of Germany.</p>

Пока я могу получить только первое предложение текста, используя следующее:

var addy = jQuery('#myDiv > p').html();
var introText = addy.slice(0, addy.indexOf("."));

Это означает: «Стокгольм - город в Швеции» - без точки, а,Я также хотел бы, чтобы это было включено.

Как указано во введении, тексты являются динамическими и различаются по длине.

Как я могу достичь вышеупомянутого?

Спасибозаранее!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Один из вариантов:

$('#myDiv > p').each(function() {
   var ss = this.textContent.split('.');
   var f = ss.slice(0, 2).join('.');
   var s = ss.slice(2).join('.');

   $(this).text(f);
   $('<p>').text(s).insertAfter(this);
})

http://jsfiddle.net/0xh5ku4f/

0 голосов
/ 07 сентября 2018

Вы можете использовать функцию для получения второго индекса, в котором есть точка, а затем разбить строку на этот индекс:

let str = "<p>Stockholm is a city in Sweden. Moscow is a city in Russia. Here is Berlin, it's the capital of Germany.</p>"

let index = nthIndex(str, ". ", 2);

let parts = [str.substring(0, index+1)+"</p>" ,"<p>"+str.substring(index+2)]

console.log(parts)

function nthIndex(str, pat, n){
    var L= str.length, i= -1;
    while(n-- && i++<L){
        i= str.indexOf(pat, i);
        if (i < 0) break;
    }
    return i;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...