Как мы можем извлечь определенную часть строки из длинной строки? - PullRequest
0 голосов
/ 22 мая 2018

У меня есть исходный код HTML с номерами мобильных телефонов.Я хочу извлечь только номера телефонов из этого исходного кода, каждый номер телефона имеет начальный и конечный флаг.Допустим, пример HTML-кода таков: каждый номер мобильного телефона начинается с «phone =» и заканчивается%, как показано ниже,

<code>
b2e1d163b0b<div class='container'></div>4dc6ebfa<h1>5&amp;t=s&amp;phone=95355036019918%40c.us&amp;i=1522996189s&amp;phone=95355025619123%40c.us&amp;i=1522996189""
</code>

Как извлечь все номера телефонов с помощью javascript или jquery?

Ответы [ 4 ]

0 голосов
/ 22 мая 2018

Вы можете разделить элементы, используя:

var rawPhoneNumbers = myText.split("phone=");
var phoneNumbers = [];
if (rawPhoneNumbers.length > 1) {
    for (var index = 0; index < rawPhoneNumbers.length; index++) {
        if (rawPhoneNumbers[index].indexOf("%") > -1) {
            phoneNumbers.push(rawPhoneNumbers[index].substring(0, rawPhoneNumbers[index].indexOf("%")));
        }
    }
}
console.log(rawPhoneNumbers);
0 голосов
/ 22 мая 2018

Это можно сделать с помощью функций indexOf и substr

var test="b2e1d163b0b4dc6ebfa5&t=s&phone=95355036019918%40c.us&i=1522996189s&phone=95355025619123%40c.us&i=1522996189"
var start_point = test.indexOf("phone=)+6; 
//indexOf will return the location of "phone=", hence adding 6 to make start_point indicate the starting location of phone number
var phone_number = test.substr(start_location,10);
0 голосов
/ 22 мая 2018

Вы можете создать собственную логику, которая использует split() для &phone=, а затем получить substr() для каждого элемента разделенного массива, проверив, существует ли % или нет.

var str = "b2e1d163b0b4dc6ebfa5&t=s&phone=95355036019918%40c.us&i=1522996189s&phone=95355025619123%40c.us&i=1522996189";
var strArray = str.split('&phone=');
var phoneNumber = [];
strArray.forEach((item)=>{
  var indexOfPercent = item.indexOf('%');
  if(indexOfPercent !== -1){
    phoneNumber.push(item.substr(0, indexOfPercent));
  }
});
console.log(phoneNumber);
0 голосов
/ 22 мая 2018

Вы можете использовать RegExp:

var str = "b2e1d163b0b4dc6ebfa5&t=s&phone=95355036019918%40c.us&i=1522996189s&phone=95355025619123%40c.us&i=1522996189";
var reg = /phone=(.*?)\%/g; // Anything between phone= and %
while ((matchArray = reg.exec(str)) !== null) { // Iterate over matchs
  console.log(`Found ${matchArray[1]}.`);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...