Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.08.2021, 14:12
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Разбить текст на части / взять текст между символами
К примеру у меня есть текст:

ID55 Здесь 1я часть текста ID55ID44 Здесь 2я часть текста ID44ID77 Здесь 3я часть текста ID77

1) Как мне проверить существует ли ID44 в этом тексте, и если есть тогда взять то что внутри ID44 (Здесь 2я часть текста)?

2) Как мне заменить содержимое внутри ID44, если я не знаю какой там может быть текст?
Т.е. по сути нужно заменить текст обернутый символами ID44 какой то текст ID44.



Есть ли решение для jquery?


Для чего это нужно?!
Есть корзина в которой могут одновременно находиться несколько товаров. И для каждого товара есть своя доп опция которую можно заполнить (текстовое поле). Я буду записывать Название товара и Текст опции в комментарий к заказу. Но покупатель может менять текст опции. Поэтому буду записывать между символов с ид товара и заменять содержимое конкретного товара в общем текстовом поле заказа.

Последний раз редактировалось StartGames, 27.08.2021 в 14:20.
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2021, 15:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от StartGames
Как мне проверить существует ли ID44 в этом тексте
https://javascript.ru/string/indexof

Сообщение от StartGames
взять то что внутри ID44
https://javascript.ru/string/split

Но что-то мне подсказывает - идешь ты не в том направлении...
Ответить с цитированием
  #3 (permalink)  
Старый 27.08.2021, 15:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от StartGames
Как мне заменить содержимое внутри ID44, если я не знаю какой там может быть текст?
Как вариант...
const str = 'ID55 Здесь 1я часть текста ID55ID44 Здесь 2я часть текста ID44ID77 Здесь 3я часть текста ID77'
alert(str.replace(/ID44.*(?=ID44)/, 'ID44Любой текст'))


Но ты идешь не в ту сторону...
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2021, 15:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от StartGames
Есть ли решение для jquery?
<!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>
Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2021, 15:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

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)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект разбить на части. Dark Souls jQuery 7 13.01.2018 02:06
поиск текст - подсветка - переход к найденному rdfhnbhf jQuery 1 05.07.2012 12:49
Как в jQuery разбить код на части? muravey jQuery 3 10.02.2011 12:05
как разбить текст на части определенного размера? R.I.P.er Общие вопросы Javascript 12 07.12.2010 22:29
Вернуть в строковую переменную текст между тегами h1 andikk Общие вопросы Javascript 11 14.08.2009 17:40