将正则表达式中的文本替换为jquery

时间:2011-11-05 22:44:18

标签: javascript jquery replace

这让我发疯,这是什么原因不起作用?

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 个答案:

答案 0 :(得分:3)

请改为尝试:

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

答案 1 :(得分:1)

带有match

/g会返回一系列匹配项(不包括带括号的子字符串),因此您必须单独replace个。如果您知道只有一个匹配项,请使用data.match(/first-([A-Za-z0-9-]+)/)[1]来提取带括号的子字符串。

答案 2 :(得分:1)

我不确定你为什么要先打比赛。为什么不简单地做其中任何一个?

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

是不是因为你的数据变量包含的内容超过了字符串'first-joe'?