1

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

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

4

3 回答 3

2

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

火柴:

  1. users/123/edit

  2. users

  3. myuser123 // 判断是否不需要

解释:

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

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

忽略大小写标志使整个i匹配不区分大小写。

演示

于 2014-03-27T11:32:52.433 回答
1

使用正则表达式:

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

这匹配所有不同的字符然后(之前)“/”

小提琴

于 2014-03-27T11:33:00.313 回答
1

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

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

要不然:

s = 'users'.split('/')[0];
// users
于 2014-03-27T11:32:13.577 回答