Замена текста из регулярного выражения соответствует JQuery - PullRequest
3 голосов
/ 06 ноября 2011

Это сводит меня с ума, по какой причине это не работает?

var name = data.match(/first-([A-Za-z0-9-]+)/g).replace('first-', '');

Я хочу заменить first-joe на joe.

Я также пытался

var name = data.match(/first-([A-Za-z0-9-]+)/g);
var name = name.replace('first-', '');

и это не работает.

Тем не менее, при получении имени получателя first-joe

В чем причина этого и как это исправить?

Спасибо

Ответы [ 3 ]

3 голосов
/ 06 ноября 2011

Попробуйте вместо этого:

var name = data.replace(/first-([A-Za-z0-9-]+)/g, '$1');
1 голос
/ 06 ноября 2011

Я не уверен, почему ты в первую очередь вызываешь матч.Почему бы просто не выполнить одно из этих действий?

var name1 = data.replace('first-', '');
var name2 = data.replace(/^first-/, ''); //In case somebodys got a name containing first-.

Это потому, что ваша переменная данных содержит нечто большее, чем строка 'first-joe'?

1 голос
/ 06 ноября 2011

match с /g возвращает массив совпадений (исключая заключенные в скобки подстроки), поэтому вам придется replace их индивидуально.Если вы знаете, что есть только одно совпадение, используйте data.match(/first-([A-Za-z0-9-]+)/)[1], который извлекает заключенную в скобки подстроку.

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