Замена числа в строке с помощью jquery - PullRequest
8 голосов
/ 31 июля 2010

У меня есть строка с номером, который я хотел бы заменить другим номером.

е

<a href="" id="my_link">blah blah 32 blah blah</a>

Я знаю, что в этой строке будет только 1 число.

Я могу получить это далеко:

var my_string = $('a#my_link').text();

Но в основном я не знаю, как затем выполнить поиск по my_string для цифры и заменить это число чем-то другим.

Это возможно с jQuery?

Спасибо за любые идеи.

Ответы [ 5 ]

13 голосов
/ 31 июля 2010

Многие методы jQuery, например .text(), могут принимать функцию, которая возвращает значение для вставки.

Попробуйте: http://jsfiddle.net/6mBeQ/

$('#my_link').text( function(i,txt) {return txt.replace(/\d+/,'other value'); });

Это устраняет необходимость дважды запускать селектор.

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

Так что вместо

$('a#my_link')

лучше сделать

$('#my_link')

как я делал выше.

4 голосов
/ 31 июля 2010
var new_string = $('a#my_link').text().replace(/[0-9]+/, "somethingelse")

Заменить somethingelse на что-нибудь еще.:)

2 голосов
/ 31 июля 2010
$('a#my_link').text($('a#my_link').text().replace(/\d+/,'something'));
2 голосов
/ 31 июля 2010

Это будет работать для простых натуральных чисел, содержащих 0 - 9.

var my_string = $('a#my_link').text().replace(/[0-9]+/, 'replacement');

Если вам нужно сопоставить более сложные числа, такие как десятичные и отрицательные числа, то это будет работать:

var my_string = $('a#my_link').text().replace(/-?[0-9]*\.?[0-9]+/, 'replacement');

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

0 голосов
/ 31 июля 2010

Сначала вам нужно перебрать каждое слово, разделив пробел с помощью функции split () и отправить результат в строковый массив.

Как только вы это сделаете, проверьте каждое слово на число,Если вы найдете число, используйте функцию jquery replaceWith (): http://api.jquery.com/replaceWith/

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...