Разбить текст на части / взять текст между символами
К примеру у меня есть текст:
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, время: 18:38. |