寻找与URL片段的第一部分匹配的正则表达式

时间:2014-03-27 11:28:13

标签: javascript regex url-fragment

我有一个像'users / 123 / edit'这样的网址片段,我想匹配字符串的第一部分(在本例中为'users')。 URL片段也可以只是“用户”,也应该与“用户”匹配。

我可以通过JS find() substr()来实现,但我想看看,我是如何通过正则表达式来实现的。对解决方案的解释也很好。

3 个答案:

答案 0 :(得分:2)

正则表达式:/([a-z0-9]+)(\/[a-z0-9]+)*/i

<强>匹配

  1. users/123/edit

  2. users

  3. myuser123 //告诉是否需要

  4. <强>解释

    ([a-z0-9]+)捕获+的一个或多个事件([a-z0-9])并将其捕获。

    (\/[a-z0-9]+)*捕获零次或多次* /后跟[a-z0-9]并捕获最后一次出现。

    i gnore case标志使整个匹配不区分大小写。

    <强> DEMO

答案 1 :(得分:1)

您可以使用split('/')[0]

s = 'users/123/edit'.split('/')[0];
// users

或者其他:

s = 'users'.split('/')[0];
// users

答案 2 :(得分:1)

使用正则表达式:

str.match(/[^\/]*/i)[0]

这匹配所有不同于(之前)“/”

的字符

FIDDLE