Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2017, 00:27
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Поиск и замена в переменной
Есть переменная src:
fgdf
id 35235
hddg
id 45346
rryeh

нужно взять все строги с "id цифры" и заменить их
Я делаю вот так:
src.replace(/(id) [0-9]/gi, '<a href="$1">$2</a>');

$2 не заменяется на найденные цифры. Подскажите, что я делаю не так.

Последний раз редактировалось dima85, 21.09.2017 в 00:36.
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2017, 00:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

dima85,
src.replace(/(id)\s+(\d+)/mg, '<a href="$1">$2</a>')
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2017, 00:48
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

рони, может есть какой-то просто online сервис который позволяет делать такие конструкции? Ну не могу я сам вникнуть как такое делать.
А вас каждый раз просить тоже не хочется.
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2017, 00:54
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://regexr.com/
https://regex101.com/
сервис есть, но надо вникать, у сервиса нет искусственного интеллект, так как Рони он вас не поймет =(
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2017, 00:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

dima85,

искать по таблице или запомнить 30 шаблонов и 3 флага
https://javascript.ru/regexp
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2017, 15:06
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

text text
text
id 34355
text text
id 35235
text
text
id 45346


А replace может удалять вверх? То есть у меня есть переменная с line = "35235" это id 35235 в переменной src код выше.
В src нужно id 35235 удалить и удалить все что до вышестоящей строчки с id *, строчек может быть разное количество. Или такие вещи лучше через функции?

Последний раз редактировалось dima85, 21.09.2017 в 15:12.
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2017, 16:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от dima85
А replace может удалять вверх?
Работает только с найденой подстрокой. За ее пределами действия не производятся.

Сообщение от dima85
Или такие вещи лучше через функции?
У метода replace есть калбек-функция...

Может тебе лучше пример привести на предмет "так было", "потом стало"...
Т.к. у тебя нет в строке
Сообщение от dima85
line = "35235"
Ответить с цитированием
  #8 (permalink)  
Старый 21.09.2017, 17:12
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

В переменной line нет слова id

Примеры, целая src
text text
text
id 34355
text text
id 35235
text
text
id 45346


Если line = "35235" то удаляем 4-5 строчки, получаем это:
text text
text
id 34355
text
text
id 45346



если line = "45346" то удаляем 6,7,8 строки, получаем:
text text
text
id 34355
text text
id 35235

Последний раз редактировалось dima85, 21.09.2017 в 17:14.
Ответить с цитированием
  #9 (permalink)  
Старый 21.09.2017, 17:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

dima85,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<textarea id="h" name=""  rows="12" >text text
text
id 34355
text text
id 35235
text
text
id 45346

</textarea>
 <script>

var line = "35235", reg = new RegExp("((id)\\s+(\\d+))[^\\d]+?"+line, "mig");

h.value = h.value.replace(reg, "$1")
  </script>
<textarea id="k" name=""  rows="12" >text text
text
id 34355
text text
id 35235
text
text
id 45346

</textarea>
 <script>

var line = "45346", reg = new RegExp("((id)\\s+(\\d+))[^\\d]+?"+line, "mig");

k.value = k.value.replace(reg, "$1")
  </script>




</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 21.09.2017, 17:44
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от dima85
Если line = "35235" то удаляем 4-5 строчки, получаем это:
Простой вариант. Пока набиваю руку в регулярках

var str = `text text
text
id 34355
text text
id 35235
text
text
id 45346`;
str = str.replace(/(id\s{1}\d+)(\D+id\s{1}35235\s)([a-zA-Z0-9\n\s]+)/im, '$1\n$3');
alert(str);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена слов по списку EvgenStor Общие вопросы Javascript 40 26.09.2017 03:29
Поиск в переменной и замена. Dima1985 Events/DOM/Window 1 10.07.2014 12:42
Поиск и замена текста в переменной nikolayseo jQuery 1 03.12.2012 22:39
Поиск и замена стиля одинакового сообщения fAmOus Элементы интерфейса 8 29.07.2012 01:54
Поиск и замена в текстовом поле Roman Koff Events/DOM/Window 12 23.04.2010 23:35