0

我有下一个字符串“/1234/somename”,我想使用正则表达式提取“somename”。

我可以使用下一个代码来完成这项工作,但我想知道如何使用 RegExp 做同样的事情。 mystring.substring(mystring.lastIndexOf("/") + 1, mystring.length)

谢谢

4

3 回答 3

3

在正则表达式中,可以这样做:

var pattern = /\/([^\/]+)$/
"/1234/somename".match(pattern);
// ["/somename", "somename"]

该模式匹配 a 之后的所有字符/(除了另一个/)直到字符串的末尾$

但是,我可能会.split()改用:

// Split on the / and pop off the last element
// if a / exists in the string...
var s = "/1234/somename"
if (s.indexOf("/") >= 0) {
  var name = s.split("/").pop();
}
于 2012-04-04T14:26:26.997 回答
0

尝试这个:

mystring.match( /\/[^\/]+$/ )
于 2012-04-04T14:28:34.783 回答
0

这个:

mystring.substring(mystring.lastIndexOf("/") + 1, mystring.length)

相当于:

mystring.replace(/.*[/]/s, '')

(请注意,尽管名称为“replace”,但该方法不会修改mystring,而是会返回 的修改副本mystring。)

于 2012-04-04T14:26:28.060 回答