0

所以我目前有这个:

matches = val.match(/kickstarter\/projects(.*?)/);

要匹配 kickstarters 项目 url 之后的信息,例如:

http://www.kickstarter.com/projects/defiant/hand-of-fate-a-card-game-that-comes-to-life?ref=home_spotlight

因此,使用该代码它给了我:

/defiant/hand-of-fate-a-card-game-that-comes-to-life?ref=home_spotlight

我希望它删除任何有 ? 包括那个角色本身。

4

4 回答 4

3

我实际上会做类似的事情

newstr = str.split("?")[0];

于 2013-11-14T15:28:41.123 回答
1

您不能使用该match功能删除东西。但你肯定可以使用

val.replace(/\?.*$/, '')

用空字符串替换从问号到结尾的任何内容。

于 2013-11-14T15:29:21.213 回答
1

只需在你的 re 中使用[^?]而不是:.

> url.match(/kickstarter\.com\/projects([^?]+)/)[1]
"/defiant/hand-of-fate-a-card-game-that-comes-to-life"
于 2013-11-14T15:45:09.327 回答
0

你想要的正则表达式是:

matches = val.match(/kickstarter.com\/projects([^?]*)/)
于 2013-11-14T15:56:27.593 回答