var re = /\[(.*?)\]\s*\((http.*?)\)/g;
var txt = '[катетер-направленному тромболизису] (https://www.radiologyinfo.org/en/info.cfm?pg=thrombo), но та, которая, помимо удаления тромбов, также открывает и усиливает слишком маленькие кровеносные сосуды через стенты или другие средства. Также может быть желательно увеличить их проницаемость, чтобы фиксаторы достигали паренхимы мозга по всему кровеносному сосуду, а не только на кончиках. Лазер может делать микроскопические дыры по всей длине, а затем, возможно, добавить [тонкий слой полиамида] (https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials)';
var html = txt.replace(re,(a,b,c)=>{
console.log("-------------\ntext:",b,"\nurl:",c);
return `<a href='${c}'>${c}</a>`;
});
console.log("-------------\n",html);
-------------
text: катетер-направленному тромболизису
url: https://www.radiologyinfo.org/en/info.cfm?pg=thrombo
-------------
text: тонкий слой полиамида
url: https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials
-------------
<a href='https://www.radiologyinfo.org/en/info.cfm?pg=thrombo'>https://www.radiologyinfo.org/en/info.cfm?pg=thrombo</a>, но та, которая, помимо удаления тромбов, также открывает и усиливает слишком маленькие кровеносные сосуды через стенты или другие средства. Также может быть желательно увеличить их проницаемость, чтобы фиксаторы достигали паренхимы мозга по всему кровеносному сосуду, а не только на кончиках. Лазер может делать микроскопические дыры по всей длине, а затем, возможно, добавить <a href='https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials'>https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials</a>
let re = new RegExp(variable + "=" + ".*?(?=&|$)");
const result = url.replace(re, variable + "=" + newData);
let url = 'http://localhost/?a=1&b=2&test=Y&clear=allcache';
let re = /(\?|&)(.*?)\=(.*?)(?=&|$)/g;
const newdata = {
test: 333,
clear: 4444
};
function changeURL(url, keys) {
return url.replace(re, (a,prefix,key,val)=>{
if( keys[key] )
return prefix+key+"="+keys[key];
return prefix+key+"="+val;
});
}
url = changeURL(url, newdata);
console.log(url);
// функция разбирает телефонный номер на части и возвращает их для проверки
function parsePhoneNumber(phoneNumberAsText){
// через парамерт phoneNumberAsText функция получает текст содержащий номер телефона
// предположим что обрабатываемое текстовое представление номера телефона
// может принимать следующий вид (и имеет принадлежность к РФ):
// "+7 (999) 888-77-55"
// "8 (999) 888-77-55"
// "+7 999 888-77-55"
// "+7999888-77-55"
// "+799988-777-55"
// "+799988-77-555"
// "+79998887755"
// "89998887755"
// и т.д.
// убираем из него все лишнее
var phone = "+"+phoneNumberAsText.replace(/^8/,"+7").replace(/[^0-9]/,"");
// составляем регулярку на основе международного формата телефонных номеров
var re = /^(\+\d)(\d{3})(\d{7})$/;
// получаем составные части нашего телефонного номера
var [phone, country, code, number] = phoneNumber.match(re);
// где:
// phone - номер телефона в формате "+79998887766"
// country - код страны (фикция, данный код будет работать для РФ и еще пары стран, поэтому считаем что тут всегда "+7")
// code - трехзначный код региона/оператора
// number - семизначный номер телефона в регионе/у оператора
// возвращаем полученный результат разбора номера
return {
phone: phone,
country: country,
code: code,
number: number
};
}
// парсим номер "8 (999) 888-77-66"
var result = parsePhoneNumber("8 (999) 888-77-66");
// на выходе в result получим объект вида
// { phone: "+79998887766", country: "+7", code: "999", number: "8887766" }
// предположим что у вас есть массив с нужными вам кодами регионов/операторов
// allowCodes = ["999", "998" и т.д];
// смотрим совпадает ли код региона/оператора с одним из кодов в allowCodes
if( allowCodes.indexOf(result.code) ){
console.log("Номер "+result.phone+" принадлежит искомой группе/региону/оператору")
}else{
console.log("Номер "+result.phone+" НЕ принадлежит искомой группе/региону/оператору")
}
var text = "(text) Lorem Ipsum is simply dummy, (text, simply) and (text, simply, qwerty) typesetting industry. Lorem Ipsum has been the[/m]";
let result = text.match(/\([^)]+?(,[^)]+)+\)/g);
console.log(result); // [ "(text, simply)", "(text, simply, qwerty)" ]