这让我发疯,这是什么原因不起作用?
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
这是什么原因,我该如何解决?
由于
答案 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'?