Answer the question
In order to leave comments, you need to log in
How to replace text using regular expressions in jQuery?
There is such a line
<b id="finish_kar_cri">0x61496a395F549XzxzxZ</b>
How to turn it into
<b id="finish_kar_cri">8472875</b>
?
Answer the question
In order to leave comments, you need to log in
Regular expressions are needed when parsing a page and extracting information, and jQuery is already working with the dom of this page
. So I took the time, without JQuery we change the text, for example, some kind of template that came from the server and added to the document.
/**
* Изменяет по шаблону все найденные совпадения
* @param htmlcode страница которую нужно изменить
* @param listReplace список значений для изменения найденных
* @param pattern паттерн регулярное выражения поиска
* @param globalFind нужно ли изменять все значения или только одно
* @returns {*|string|void} возращаяет изменненный текст html документа
*/
function replaceToken(htmlcode, listReplace,pattern, globalFind = true) {
/**
* Получает список токенов, которыми нужно заменить
* Возращает заряженный генератор с списком по порядку выражений замены,
* каждый раз будет возращать новое значение замены, список может быть прислан с сервера,
* в случаее если найденных значений будет больше, то он не чего не измениn. Выражение "$&"
* не изменяет найденое вхождение
* @param list_tokens - массив- список значений которыми нужно заменить всякие 0x23423j343/
* @returns {{generator: generaterSReplace}} возвращает генератор, который каждый раз будет возвращать следующие значения для замены
*/
function loadGenerator(list_tokens) {
return {
generator: function* generaterSReplace() {
for(let i=0; i<list_tokens.length;i++)
yield list_tokens[i];
return "$&";
}
}
}
let generator=loadGenerator(list_tokens).generator();
let reg;
if(globalFind || listReplace instanceof Array)
reg =new RegExp(pattern,["mg"]);
else
reg=new RegExp(pattern,["m"]);
return res =htmlcode.replace(reg,function(str1,str2){
return str1.replace(str2,generator.next().value);
});
}/****************TEST-------------------------TEST***********************************/
var list_tokens=["1234567890","0987654321"]; // значения для замены, то есть html документ к примеру шаблон присланный с сервера или исходный текст самой страницы к примеру
// var htmlCode;
// $.get(document.location.href, function(data){htmlCode=data.data});
let html='разные там <b>html</b>елементы. А вот и трока поиска: </b><b id="finish_kar_cri">0x61496a395F549XzxzxZ</b>....' +
'a вот еще один такой же элемент(предположим что там class а не id для массового поиска)'
+'<b id="finish_kar_cri">0x323232323</b>...';
let pattern='<b id="finish_kar_cri">(\\w+)</b>'; // ваша строка поиска в скобках значениыя ддля замены
var res=replaceToken(html,list_tokens,pattern); // возвращаем имененную строку
$(document).append(res); // console.log(res)// результат, измененная текст с вашим токеном
// token[1] - и будет найденным текстом
var ell=$("#finish_kar_cri");
var lastVal=ell.text(); // запомнили старое значение
ell.text("8496444");
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question