Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2019, 23:10
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

Удалить текст в строке +18 символов после него
есть строка
var str="null++test alert system1_20191109110452333++test alert system_20191109110452444++test ии аа_20191109110452555"


нужно найти и удалить в ней все "++test alert system1" и 18 символов после каждого найденного. То есть в итоге хочу получить

str="null++test alert system_20191109110452444++test ии аа_20191109110452555"


строка всегда начинается на null
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2019, 23:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

sovsem-nub,
let str="null++test alert system1_20191109110452333++test alert system_20191109110452444++test ии аа_20191109110452555";
let txt = "++test alert system1";
let test = "null++test alert system_20191109110452444++test ии аа_20191109110452555"
const escapeRegExp = string => string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const fn = (str, txt) =>{
    const reg = new RegExp( escapeRegExp(txt) + ".{18}", "g");
    return str.replace(reg, "")
}
alert(test == fn(str, txt));
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2019, 01:52
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

спасибо! это действительно круто.

долго не мог понять что такое =>, потом txt.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") думал, что это прикол какой-то. Потом понял, что это мои плюсики и другие символы экранирует.


let str="null++test alert system1_20191109110452333++test alert system_20191109110452444++test ии аа_20191109110452555";
let txt = "++test alert system1";
let test = "null++test alert system_20191109110452444++test ии аа_20191109110452555"

 function fn(str, txt){
//   reg = new RegExp(txt.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + ".{18}", "g");
    return str.replace(/\+\+test alert system1.{18}/g, "")
}
alert(test == fn(str, txt));
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Toggle эффект блока с кнопкой "Читать дальше". С меня "+" subbziro Общие вопросы Javascript 10 28.12.2016 01:43
Количество символов в строке. allanmiln Events/DOM/Window 10 14.11.2014 09:18
Сворачивание строк таблицы eFusion jQuery 6 13.05.2014 15:08
Текст после элемента Vulkan Events/DOM/Window 3 15.10.2010 11:59
Удалить ряд символов перед или после курсора до определенного сивола brd Javascript под браузер 3 30.10.2009 08:20