Jquery заменить символ в строке

Это не работает, и мне это нужно плохо

он всегда заменяет только для первого экземпляра, но мне нужно, чтобы он работал для всех символов +.

Вам нужно использовать регулярное выражение, чтобы вы могли указать глобальный (g) флаг:

(я удалил $() вокруг строки, так как replace не является методом jQuery, поэтому он не будет работать вообще.)

RegEx — это способ пойти в большинстве случаев.

В некоторых случаях может быть быстрее указать больше элементов или конкретного элемента для выполнения замены:

Это заменяет один раз на каждую строку, но делает это с использованием более конкретного селектора.

Посмотрите другие вопросы по меткам jquery string replace или Задайте вопрос

Поиск по форуму
Расширенный поиск
К странице.

Илья Кантор, 10 мая 2009 — 17:48

Синтаксис

Аргументы

Описание, примеры

Этот метод не меняет вызывающую строку, а возвращает новую, после замен.

Чтобы произвести глобальный поиск и замену, используйте regexp c флагом "g".

Строка замены

Если вы указываете строку как второй параметр — она может включать в себя следующие специальные сочетания:

$$ Вставляет "$" $& Вставляет совпавшую подстроку $` Вставляет часть строки, которая предшествует совпавшей подстроке $’ Вставляет часть строки, которая следует за совпавшей подстрокой $n или $nn, где n/nn — десятичные цифры Вставляет n-ю скобку в совпадении, если первый аргумент — объект RegExp

Функция замены

Если вы указываете функцию в качестве второго параметра, то она вызывается при каждом совпадении.

Ваша функция может динамически генерировать строку, которая заменит совпавшую подстроку. В качестве значения для замены используется результат работы функции.

Функция может использовать совпавшие подстроки — она их получает в параметрах вызова. Первый параметр всегда содержит полную совпавшую подстроку.

Если при вызове replace указано регулярное выражение, а не строка, то последующие параметры будут содержать значения скобочных групп.

Наконец, последние два параметра — позиция, на которой произошло совпадения и вызывающая строка.

Следующий пример вернет my XX, zz .

Значения параметров при вызове replacer :

str "XXzz" — совпавшая подстрока p1 "XX" — первая скобка p2 "zz" — вторая скобка offset 3 — позиция в тексте для поиска s "my XXzz" — вызывающая строка, т.е строка для поиска

В следующем примере используется строка замены. Глобального поиска при этом не происходит.

Для глобального поиска используйте регулярное выражение.

Следующий пример использует при замене сочетания $1 и $2 для ссылок на результат поиска.

Спасибо! И все же жаль, что нет замены без регулярных выражений.

Спасиб ОГРОМНОЕ. Я долго думал,почему replace заменял не все строки,но когда поставил с new RegExp("тест",’g’) всё пофурчало. СПС.

Опечатка:
. Чтобы произвести глобальныЙ поиск.

Для глобальной замены лучше подходит str.split(search).join(replace); и работает быстрее, и беспокоиться о спецсимволах почти не надо.

Спасибо! Долго не мог решить вопрос с вырезанием спец символов.

Метод split вызовет ошибку, если подстрока search не будет найдена в строке str. Т.О. сий подход не универсален. Следует это помнить!
И еще не очень удобно, потому что реальная строка будет заменена, а если это шаблонная строка? Например, ест апельсины?

Спасибо и низкий поклон тебе.

Класс! Вот это то что долго искал! Я зае. с этими регулярками. Спасибо!

подскажите как можно стереть все   лучше вообще все спец символы. может есть какой-то аналог 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-w

Ребята, подскажите плз как удалить из строки подстроку, которая начинается с символов ">>" и заканчивается " или заменить на "". Пока делаю тупо так:


В пиве сила! В вине мудрость! А в воде. микробы!

Спасибо Вам большое,пролили свет в мою темную утомительную ночь

спасибо за объяснение роли флага /../g
и да прибудет с вами

Ребят а не подскажите возможно ли:

В базе есть построчный текст. При выводе через replace на конце строки ставится . Возможно как-то ли вместо на конце заключать строку в теги

Блин сорри все теги порезались.

В базе mysql в ячейке есть построчный текст. При выводе через replace на конце строки ставится тег BR. Возможно как-то ли вместо BR на конце заключать каждую строку в тег P

А можно ли заменить текст на пустой символ? Чтобы ничего не было?

Забавное поведение функции:

Привет, спасибо за статью. Есть такая проблема:

Непонятно, почему так работает.

Надо так писать:

я так понял replace работает 1 раз?
т.к. выполняю след.
link = link.replace(/ /g, ‘-‘);
заменяю пробелы на дефис
далее мне нужно заменить в этом же $str все лишние символы слеши скобки и т.д.
ничего не выходит, выручайте!

возможно как-то так:

или если надо убрать все символы не буквы и не цифры и заменить на дефисы, то так:

Спасибо за эту подсказку. Она мне помогла.

А может ли эта функция заменять в тексте разные фрагменты на разные выражения, например "Курица" заменить на "яйцо" и параллельно "волк" заменить на "ягнёнок" ?

ничего не понял, но все равно спс)
автор написал так,что понять может только тот, кто не знал какого-то отдельного момента.
именно поэтому на рынке у нас учебники из США, что авторы просто тупо ленятся объяснить четко и подробно

Вопрос на счёт >:

Кто нибудь пояснить может, что эта функция возращает при, так сказать, false. То есть, если искомая строка не найдена: Стандартно: "-1" или булевское значение?

Добавлю и я свой "костыль" по глобальной замене строк. Моя функция производит глобальную замену, в качестве параметров поиска и замены передаются как строки, так и массивы: srch[0] -> repl[0], srch[1] -> repl[1], . или srch[0] -> rep, srch[1] -> rep, . В последних двух параметрах можно указать, что вставить перед и после заменяемого фрагмента.

Кстати, в примере использования строки 3-4 можно записать еще так:

Привет всем. Подскажите как можно осуществить такую штуку. Нужно, что бы при входе пользователя после ввода его пароль заменялся автоматически на другой.

Здравствуйте! Помогите пожалуйста со скриптом. Есть сайт с музыкой, все названия песен в одну строку. При переносе через код удаляются начальные ковычки и скобки. Ничего придумать больше т.к. не знаю js. Для наглядного примера ссылочка

//может вот так
for (var i = 0; i ‘);
$(".titlid").eq(i).html(textid2[0] + ‘ — ‘ + textid2[1]);
>

возможно из одной строки убирать части которые переданы в другую переменную

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>/, »)) // если известно, что ровно 2 ЛЮБЫХ символа (буквы, цифры и т.д)
alert(str.replace(/mn=.+s/, ‘ ‘)) // аналогично, но предполагая, что bv произвольной длины, не содержит пробела и следом есть пробел

Всем привет!
Такой вопрос.

Есть допустим текст: "г. Москва, ул. Ленина 5"

Как в этом тексте сделать замену на: "г.

Но! С одним условием — поиск по тексту, мы производим словом "москва", т.е. москва — с маленькой буквой, а на выходе текст должен остаться оригинальным, но со вставкой тегов

Извините, но написано так, что нуля понять, что она вообще делает и каким образом, мягко говоря, затруднительно.

Ребят, а как тут поступить?
Вот эту строку: 88002004860
нужно привести к такому виду: 8 800 200 48 60

Описание

Метод replace() ищет строку для указанного значения или регулярного выражения и возвращает новую строку, где указанные значения будут заменены.

Применение: Метод не изменяет строку, для которой он вызывается.

Синтаксис

Возвращаемое значение

Новая строка, в которой указанные значения были заменены новым значением.

Этот метод не изменяет объект String, на котором он вызывается. Он просто возвращает новую строку.

Примеры

Если первым аргументом является строка, заменяется только первое вхождение подстроки в строку:

В этом примере строка "at" передается в качестве первого аргумента в метод replace() для замены значением "ond". В результате в первом совпадении слово "cat" изменяется на "cond", но вся остальная часть строки остается неизменной.

Чтобы заменить все совпадения, нужно использовать для поиска не строку "at", а регулярное выражение /at/g, причём обязательно с флагом g:

Строка в качестве второго параметра

Если вы указываете строку как второй параметр — она может включать в себя следующие специальные шаблоны замены:

Шаблон Замена $$ Вставляет символ доллара «$». $& Вставляет всё найденное совпадение. $` Вставляет часть строки до совпадения. $’ Вставляет часть строки после совпадения. $n n-ная группа захвата, где n – значение от О до 9. Например, $1 – это первая группа захвата, $2 – вторая, и т. д. Если захвата нет, ис­пользуется пустая строка. $nn nn-ная группа захвата, где nn – значение от О1 до 91. Например, $01 – это первая группа захвата, $02 – вторая, и т. д. Если захвата нет, ис­пользуется пустая строка.

Пример использования скобок и $1, $2:

Пример, с использованием подстроки, совпадающей со всем шаблоном $&:

Функция в качестве второго параметра

Если вы указываете функцию в качестве второго параметра, то она вызывается при каждом совпадении. При наличии одного со­впадения в нее передаются три аргумента: совпадение, позиция совпадения в строке и вся строка. Если групп захвата несколько, каждая совпавшая строка передается в функцию как аргумент, при этом двумя последними аргументами являются по­зиция совпадения с шаблоном в строке и оригинальная строка. Результат вызова функции (её возвращаемое значение) будет использоваться в качестве строки замены.

Функция принимает следующие аргументы:

  1. match – найденное совпадение, (cоответствует шаблону замены $&, описанному выше).
  2. p1, p2, . pn – содержимое скобок (если есть), из объекта RegExp в первом параметре метода replace() (cоответствует шаблонам замены $1, $2 и так далее, описанным выше). Например, если в качестве шаблона передано регулярное выражение /(a+)(+)/, параметр p1 будет значение сопоставления с подгруппой a+, а параметр p2 — с подгруппой +.
  3. offset – позиция, на которой найдено совпадение (например, если вся строка равна ‘abcd’, а сопоставившаяся подстрока равна ‘bc’, то этот аргумент будет равен 1).
  4. string – исходная строка.

Если скобок в регулярном выражении нет, то у функции всегда будет ровно 3 аргумента: replacer(match, offset, string).

Пример, с использованием функции, выводящей полную информацию о совпадениях:


[an error occurred while processing the directive]
Карта сайта