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

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

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

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

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

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

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

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

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

Поиск по форуму Расширенный поиск К странице. Илья Кантор, 10 мая 2009 — 17:48 Содержание
  1. Синтаксис
  2. Аргументы
  3. Описание, примеры
  4. Строка замены
  5. Функция замены
  6. Вопрос на счёт >:
  7. 2 ответа

Синтаксис

Аргументы

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

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

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

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

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

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

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

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

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

У меня есть следующий код

этот фрагмент кода записывается для удаления всего двоеточия в строке, которая читается следующим образом:

00: 04: F2: 1C: AC: 27

Однако, похоже, он не работает.. пожалуйста, помогите!

2 ответа

4 Решение adeneo [2012-08-24 10:08:00]

Вероятно, для их устранения необходимо, чтобы все они были глобальными:

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

Что означает $j ? У вас есть вызов как $j=jQuery.noConflict() раньше? В противном случае он должен читаться так:

И вы не ставите регулярное выражение в кавычки, просто косые черты

И, конечно, как писал аданео. Вам нужен модификатор g. Без вас просто замените один вид

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий