- replace
- Строка замены
- Функция замены
- Вопрос на счёт >:
- Javascript replace all href
- Стенд для визуализации процесса замены ссылки в реальном времени.
- Пример ссылки с измененным адресом ссылки
- Как заменить текст в ссылке
- Тестируем замену текста в ссылке :
- Замена текста в ссылке и адреса в «href» javascript
- javascript заменить текст во всех ссылках
- Кнопки для добавления всем ссылкам атрибута.
- javascript заменить адрес во всех ссылках.
replace
Этот метод не меняет вызывающую строку, а возвращает новую, после замен.
Чтобы произвести глобальный поиск и замену, используйте regexp c флагом «g».
Строка замены
Если вы указываете строку как второй параметр — она может включать в себя следующие специальные сочетания:
$$ Вставляет «$» $& Вставляет совпавшую подстроку $` Вставляет часть строки, которая предшествует совпавшей подстроке $’ Вставляет часть строки, которая следует за совпавшей подстрокой $n или $nn, где n/nn — десятичные цифры Вставляет n-ю скобку в совпадении, если первый аргумент — объект RegExp
Функция замены
Если вы указываете функцию в качестве второго параметра, то она вызывается при каждом совпадении.
Ваша функция может динамически генерировать строку, которая заменит совпавшую подстроку. В качестве значения для замены используется результат работы функции.
Функция может использовать совпавшие подстроки — она их получает в параметрах вызова. Первый параметр всегда содержит полную совпавшую подстроку.
Если при вызове replace указано регулярное выражение, а не строка, то последующие параметры будут содержать значения скобочных групп.
Наконец, последние два параметра — позиция, на которой произошло совпадения и вызывающая строка.
Следующий пример вернет my XX, zz .
function replacer(str, p1, p2, offset, s) < return p1 + ", " + p2; >newString = "my XXzz".replace(/(X+)(z+)/, replacer)
Значения параметров при вызове replacer :
str «XXzz» — совпавшая подстрока p1 «XX» — первая скобка p2 «zz» — вторая скобка offset 3 — позиция в тексте для поиска s «my XXzz» — вызывающая строка, т.е строка для поиска
В следующем примере используется строка замены. Глобального поиска при этом не происходит.
str = "тест еще тест" str.replace("тест","прошел") // = "прошел еще тест"
Для глобального поиска используйте регулярное выражение.
str = "тест еще тест" str.replace(/тест/g,"прошел") // = "прошел еще прошел" // или так str.replace(new RegExp("тест",'g'),"прошел")
Следующий пример использует при замене сочетания $1 и $2 для ссылок на результат поиска.
var re = /(\w+)\s(\w+)/; var str = "John Smith"; var newstr = str.replace(re, "$2, $1") // "Smith, John"
Спасибо! И все же жаль, что нет замены без регулярных выражений.
'somestring\\w'.replace('\\w', '@') // → somestring@
Спасиб ОГРОМНОЕ. Я долго думал,почему replace заменял не все строки,но когда поставил с new RegExp(«тест»,’g’) всё пофурчало. СПС.
Опечатка:
. Чтобы произвести глобальныЙ поиск.
Для глобальной замены лучше подходит str.split(search).join(replace); и работает быстрее, и беспокоиться о спецсимволах почти не надо.
Спасибо! Долго не мог решить вопрос с вырезанием спец символов.
Метод split вызовет ошибку, если подстрока search не будет найдена в строке str. Т.О. сий подход не универсален. Следует это помнить!
И еще не очень удобно, потому что реальная строка будет заменена, а если это шаблонная строка? Например, ест апельсины?
>Метод split вызовет ошибку, если подстрока search не будет найдена в строке str.
Не могу получить такую ошибку. Вы ошиблись?
let str = 'Метод split вызовет ошибку, если подстрока search не будет найдена в строке str.'; let str2 = str.split('z').join('яяя'); console.log(str2);
Спасибо и низкий поклон тебе.
Класс! Вот это то что долго искал! Я зае. с этими регулярками. Спасибо!
подскажите как можно стереть все \ \; лучше вообще все спец символы. может есть какой-то аналог addslashes или mysql_real_escape_string
А как найти в строке, скажем, 20-й символ (причем без разницы, что за символ там будет стоять) и заменить его например на «А» ?
str = ‘bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb’.split(«»);
str[19] = ‘A’;
str = str.join(«»);
alert(str);
Спасибо большое! Но я не понял, как работает str.replace(anything, function);
А изза чего может быть проблема при глобальной замене, когда не заменяются символы []
Возможно нужно экранировать символы «[» и «]» обратным слэшем.
подскажите как сделать так штоб через replace оствлось только:Сайт для любителей домашних животных и не только. Новости из мира животных
подскажите как сделать так штоб через replace оствлось только:Сайт для любителей домашних животных и не только. Новости из мира животных
meta style=»border-color: rgb(0, 0, 255); border-width: 2px; border-style: solid;» name=»description» content=»Сайт для любителей домашних животных и не только. Новости из мира животных»
Ребята, подскажите плз как удалить из строки подстроку, которая начинается с символов «>>» и заканчивается »
function toAbsURL(s) var l = location, h, p, f, i;
if (/^\w+:/.test(s)) return s;
>
h = l.protocol + ‘//’ + l.host + (l.port!=»?(‘:’ + l.port):»);
if (s.indexOf(‘/’) == 0) return h + s;
>
p = l.pathname.replace(/\/[^\/]*$/, »);
f = s.match(/\.\.\//g);
if (f) s = s.substring(f.length * 3);
for (i = f.length; i—;) p = p.substring(0, p.lastIndexOf(‘/’));
>
>
return h + p + ‘/’ + s;
>
var base = document.getElementsByTagName(‘base’)[0];
base.href = toAbsURL(base.href);
То, что надо! Очень понятно!
никак не пойму как через репласе заменить два тега одним проходом? в том смысле если встретиться < p >или < /p >заменить на «». Пока делаю тупо так:
—
В пиве сила! В вине мудрость! А в воде. микробы!
Спасибо Вам большое,пролили свет в мою темную утомительную ночь
спасибо за объяснение роли флага /../g
и да прибудет с вами
Ребят а не подскажите возможно ли:
В базе есть построчный текст. При выводе через replace на конце строки ставится . Возможно как-то ли вместо на конце заключать строку в теги
Блин сорри все теги порезались.
В базе mysql в ячейке есть построчный текст. При выводе через replace на конце строки ставится тег BR. Возможно как-то ли вместо BR на конце заключать каждую строку в тег P
А можно ли заменить текст на пустой символ? Чтобы ничего не было?
Забавное поведение функции:
var string = "1"; string.replace("", "sad"); alert(string); // sad1 -
Привет, спасибо за статью. Есть такая проблема:
'href?lang=en_GB'.replace(/lang=.*&?/, 'lang=en_US&'); // 'href?lang=en_US&' --> ok 'href?lang=en_GB¶m=true'.replace(/lang=.*&?/); // 'href?lang=en_US&' --> 'param=true' исчезло --> ?!
Непонятно, почему так работает.
'href?lang=en_GB'.replace(/lang=[^&]*/, 'lang=en_US'); // "href?lang=en_US" 'href?lang=en_GB¶m=true'.replace(/lang=[^&]*/, 'lang=en_US'); // "href?lang=en_US¶m=true"
я так понял replace работает 1 раз?
т.к. выполняю след.
link = link.replace(/\ /g, ‘-‘);
заменяю пробелы на дефис
далее мне нужно заменить в этом же $str все лишние символы слеши скобки и т.д.
ничего не выходит, выручайте!
или если надо убрать все символы не буквы и не цифры и заменить на дефисы, то так:
Спасибо за эту подсказку. Она мне помогла.
А может ли эта функция заменять в тексте разные фрагменты на разные выражения, например «Курица» заменить на «яйцо» и параллельно «волк» заменить на «ягнёнок» ?
ничего не понял, но все равно спс)
автор написал так,что понять может только тот, кто не знал какого-то отдельного момента.
именно поэтому на рынке у нас учебники из США, что авторы просто тупо ленятся объяснить четко и подробно
Вопрос на счёт >:
Кто нибудь пояснить может, что эта функция возращает при, так сказать, false. То есть, если искомая строка не найдена: Стандартно: «-1» или булевское значение?
Добавлю и я свой «костыль» по глобальной замене строк. Моя функция производит глобальную замену, в качестве параметров поиска и замены передаются как строки, так и массивы: srch[0] -> repl[0], srch[1] -> repl[1], . или srch[0] -> rep, srch[1] -> rep, . В последних двух параметрах можно указать, что вставить перед и после заменяемого фрагмента.
function strr(txt, search, replace, insbefore, insafter) < if (!(search && replace)) return txt; var i, txt1, sitem, ritem; if (!insbefore) insbefore = ''; if (!insafter) insafter = ''; // приводим параметры поиска и замены к массивам if ((typeof search) != 'object') search = [search]; if ((typeof replace) != 'object') replace = [replace]; // длина массива замены должна быть не меньше длины массива поиска if (replace.length < search.length) < ritem = replace[replace.length - 1]; for (i = replace.length; i < search.length; i++) < replace.push(ritem); >> // ищем и заменяем for (i = 0; i < search.length; i++) < sitem = search[i]; ritem = insbefore + replace[i] + insafter; txt1 = ''; while (txt1 != txt) < txt1 = txt; txt = txt1.replace(sitem, ritem); >> return txt; >
msg = strr(msg, '\n', '
'); msg = strr(msg, '[hr]', '
'); msg = strr(msg, ['[b]', '[i]', '[u]', '[s]'], ['', '', '', '']); msg = strr(msg, ['[/b]', '[/i]', '[/u]', '[/s]'], ['', '', '', '']); msg = strr(msg, ['[left]', '[center]', '[right]'], ['left', 'center', 'right'], ''); msg = strr(msg, ['[/left]', '[/center]', '[/right]'], ''); msg = strr(msg, ['', '
'], ['', '']); msg = strr(msg, ['
', '
'], '
');
Кстати, в примере использования строки 3-4 можно записать еще так:
msg = strr(msg, ['[b]', '[i]', '[u]', '[s]'], ['b', 'i', 'u', 's'], ''); msg = strr(msg, ['[/b]', '[/i]', '[/u]', '[/s]'], ['b', 'i', 'u', 's'], '',>');
Привет всем. Подскажите как можно осуществить такую штуку. Нужно, что бы при входе пользователя после ввода его пароль заменялся автоматически на другой.
Здравствуйте! Помогите пожалуйста со скриптом. Есть сайт с музыкой, все названия песен в одну строку. При переносе через код удаляются начальные ковычки и скобки. Ничего придумать больше т.к. не знаю js. Для наглядного примера ссылочка
//может вот так
for (var i = 0; i < 20; i++) var textid = $(".titlid").eq(i).html();
var textid2 = textid.split(‘-‘);
// var textid2 = textid.replace (/\- |\(|\»/ , ‘
возможно из одной строки убирать части которые переданы в другую переменную
var namb=3456284563991
var cl=345
var li2=3991
var cena2pl=namb.replace(/\cl/g, «»);
alert(cena2pl);
var namb2=cena2pl.replace(/\li2/g, «»);
alert(namb2); \\\нужен результат 628456
теперь я не умру с голоду
Здравствуйте.
Подскажите, как при помощи replace (или др) в строке «asdfg 123 mn=bv 587» удалить строку «mn=» и еще 2 символа после нее, т.е. как удалить «mn=bv», но «bv» — неизвестна?
var str = «asdfg 123 mn=bv 587»
alert(str.replace(/mn=./, »)) // если известно, что ровно 2 ЛЮБЫХ символа (буквы, цифры и т.д)
alert(str.replace(/mn=.+\s/, ‘ ‘)) // аналогично, но предполагая, что bv произвольной длины, не содержит пробела и следом есть пробел
Есть допустим текст: «г. Москва, ул. Ленина 5»
Как в этом тексте сделать замену на: «г.
Но! С одним условием — поиск по тексту, мы производим словом «москва», т.е. москва — с маленькой буквой, а на выходе текст должен остаться оригинальным, но со вставкой тегов
Извините, но написано так, что нуля понять, что она вообще делает и каким образом, мягко говоря, затруднительно.
Ребят, а как тут поступить?
Вот эту строку: 88002004860
нужно привести к такому виду: 8 800 200 48 60
Почему
str.replace(«/\»/g»,»») не работает?
Хочу удалить все двойные кавычки в строке.
Большое спасибо за статью. ♥
Подскажите как удалить весь закоментированный текст через JS
В php такой «html.replace(//g, »);» метод работает, а в JS нифига не удаляет!?
А где можно почитать подробнее о синтаксисе всех этих слешей, вопросов и тд? Как я понимаю, он используется не только в replace
Javascript replace all href
Огромное количество способов «заменить адрес ссылки javascript».
Рассмотрим пример изменения адресы в атрибуте href через javascript.
Поместим вовнутрь onclick с функцией.
Далее нам понадобится ссылка, где у нас есть атрибут «href» и обратиться к тегу через id .
Стенд для визуализации процесса замены ссылки в реальном времени.
У нас будет вот такая ссылка :
Чтобы увидеть замену ссылки в реальном времени — нажмите на кнопку «Изменить адрес» и смотрите на адрес выше данной строки.
Пример ссылки с измененным адресом ссылки
И теперь та же самая ссылка уже в коде:
Как заменить текст в ссылке
Возьмем этот же пример, только чуть его модернизируем! Напоминаю, что вы можете взять любой способ onclick и обратиться к тегу
Изменим внутри тега название функции :
В теге ссылки изменим id — должен быть уникальным.
Тестируем замену текста в ссылке :
Замена текста в ссылке и адреса в «href» javascript
И третьим пунктом следим оба скрипта в один, чтобы мы смогли по одном нажатию заменить и текст и адрес ссылки.
javascript заменить текст во всех ссылках
Если мы заменяли текст в определенной ссылке, то почему бы не заменить текст во всех ссылках!?
Сделаем кнопку, чтобы было видно добавление текста ссылкам :
Добавим атрибут style с цветом красный — red
function send_text()
var links = document.querySelectorAll(«a»);
links.forEach(link => link.innerHTML = «Новое содержимое во всех ссылках»;
>)
>
>
Добавим вторую , чтобы изменить содержание текст а ссылки ещё раз.
И две ссылки для наглядности.
Чтобы увидеть изменение текста ссылки, две подопытные ссылки
Кнопки для добавления всем ссылкам атрибута.
javascript заменить адрес во всех ссылках.
Следующим пунктом заменим все адреса ссылок на всей странице!
Чтобы вы могли сделать замену ссылке нажав по кнопке, нам потребуется такая кнопка button + onclick с функцией:
function send_newlink()
var links = document.querySelectorAll(«a»);
links.forEach(link => link.href=»https://google.com»;
>)
>
Результат замены, чтобы протестировать замену ссылок на всей странице нажмите по кнопке, а потом по любой ссылке. либо откройте исследовать элемент и сможете наблюдать в процессе, за любой ссылкой..
Добавим новый адрес во все ссылки