Удалить часть постоянно изменяющейся текстовой строки с помощью JavaScript? - PullRequest
1 голос
/ 08 августа 2011

У меня есть строка текста «AB-123-2011-07-09», и мне нужно удалить все, кроме «123», затем добавить знак «#» в конечный результат.

Строка «123» постоянно увеличивается, как и «2011-07-09» (дата). Только "AB" остается прежним.

Таким образом, конечный результат будет: # 123

Возможно ли это?

Спасибо.

РЕДАКТИРОВАТЬ: Просто чтобы уточнить, мне был нужен сценарий, который может глобально искать страницу и заменить любой текст, который имеет формат "AB- xxx -xxxx-xx- xx ", в котором жирным шрифтом выделены только цифры, а затем перед ним" # ".

В настоящее время в этой позиции всего 3 цифры, но в будущем их может быть четыре.

Мой код:

function Replace() {
var OldString = "AB-123-2011-07-09";
var NewString = OldString.replace(/^AB-(\d+)-.*/, "#$1");
document.body.innerHTML = document.body.innerHTML.replace(OldString, NewString);
}
window.onload = Replace();

Пока что он заменяет только 1 экземпляр строки и использует фиксированную строку («AB-123-2011-07-09»).

Какое регулярное выражение мне нужно, чтобы сделать OldString динамическим, а не фиксированным, как сейчас?

Ответы [ 4 ]

3 голосов
/ 08 августа 2011
var data = "AB-123-2011-07-09";
var field = data.split('-')[1];
document.write("#" + field);

http://jsfiddle.net/efortis/8acDr/

1 голос
/ 08 августа 2011

Следующее регулярное выражение будет работать, но в этом случае я не думаю, что вам вообще нужно регулярное выражение (как уже показывал @Eric).

"AB-123-2011-07-09".replace(/^AB-(\d+)-.*/, "#$1");

В результате получается значение #123

http://jsfiddle.net/3XhbE/

0 голосов
/ 08 августа 2011

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

“AB-123-2011-07-09“.replace(/^AB-(\d+)-\d+-\d+-\d+$/, “#$1“);

Он также проверяет заданный вами синтаксис и что в строке больше ничего нет.

migg

0 голосов
/ 08 августа 2011

Это работает?

var result = mystring.replace(new RegExp(AB-([0-9]+)-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9], "g"),"#$1");

mystring - это строка "AB-123-2011-07-09", а result будет "# 123".

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