Разбить текст на части / взять текст между символами
К примеру у меня есть текст:
ID55 Здесь 1я часть текста ID55ID44 Здесь 2я часть текста ID44ID77 Здесь 3я часть текста ID77 1) Как мне проверить существует ли ID44 в этом тексте, и если есть тогда взять то что внутри ID44 (Здесь 2я часть текста)? 2) Как мне заменить содержимое внутри ID44, если я не знаю какой там может быть текст? Т.е. по сути нужно заменить текст обернутый символами ID44 какой то текст ID44. Есть ли решение для jquery? Для чего это нужно?! Есть корзина в которой могут одновременно находиться несколько товаров. И для каждого товара есть своя доп опция которую можно заполнить (текстовое поле). Я буду записывать Название товара и Текст опции в комментарий к заказу. Но покупатель может менять текст опции. Поэтому буду записывать между символов с ид товара и заменять содержимое конкретного товара в общем текстовом поле заказа. |
Цитата:
Цитата:
Но что-то мне подсказывает - идешь ты не в том направлении... :( |
Цитата:
const str = 'ID55 Здесь 1я часть текста ID55ID44 Здесь 2я часть текста ID44ID77 Здесь 3я часть текста ID77' alert(str.replace(/ID44.*(?=ID44)/, 'ID44Любой текст')) Но ты идешь не в ту сторону... :( |
Цитата:
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
$('div').contents().filter(function() {
return this.nodeType == 3;
}).each((i, e) => {
let txt = ' abracadabra ';
e.nodeValue = e.nodeValue.replace(/(ID44).*?(\1)/g, `$1${txt}$2`);
})
});
</script>
</head>
<body>
<div>ID55 Здесь 1я часть текста ID55ID44 Здесь 2я часть текста ID44ID77 Здесь 3я часть текста ID77
</div>
</body>
</html>
|
StartGames, вот тебе альтернативный вариант "хранения" корзины
const str = `[
{"id": "ID55", "txt": "Здесь 1я часть текста"},
{"id": "ID44", "txt": "Здесь 2я часть текста"},
{"id": "ID77", "txt": "Здесь 3я часть текста"}
]`
const arr = JSON.parse(str)
alert(arr)
const i = arr.findIndex(o => o.id == 'ID44')
if (i != -1 ) alert(arr[i].txt)
|
| Часовой пояс GMT +3, время: 23:06. |