0

我是正则表达式的新手,我的表达似乎与我正在尝试做的相反或相反。我有一个字符串,在这种情况下是一个 url,我基本上想用一个空字符串替换所有内容,包括最后一个正斜杠。目前我有

"http://www.sweet.com/member/other".replace(/[^/]+$/, "")

这基本上与我想要的相反。得到我正在寻找的结果的正确表达是什么?在这种情况下,哪个会以字符串“其他”结尾?谢谢你的帮助

正则表达式示例

4

4 回答 4

5

你甚至不需要 RegExp。您只需要最后一个的位置/并从它之后开始切割字符串。

var str = "http://www.sweet.com/member/other";

var other = str.substr(str.lastIndexOf('/')+1);

您也可以进行拆分/并获取结果数组中的最后一个条目,但大多数时候字符串操作要快得多。

于 2013-05-14T15:02:34.477 回答
2

这个

遵循使用替换的原始逻辑

"http://www.sweet.com/member/other".replace(/^.*[\/]/, "")

<!DOCTYPE html>
<html>
<body>


<p id="demo">http://www.sweet.com/member/other</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var re=/^.*[\/]/
var str=document.getElementById("demo").innerHTML; 
var n=str.replace(re, '');
document.getElementById("demo").innerHTML=n;
}
</script>

</body>
</html>

或者

^(?:.*/)(.*?)$

并从第一场小组赛中提取价值

在此处输入图像描述

在此处输入图像描述

于 2013-05-14T15:03:29.157 回答
1

您需要一个匹配字符串开头的正则表达式,后跟尽可能多的字符,然后是斜杠:

/^.*\//
于 2013-05-14T15:00:27.627 回答
0

/^.*\//如果您想避免 jslint 中的错误,这里有 2 个其他解决方案(与 相同)

console.log("http://www.sweet.com/member/other".replace(/^[\S\s]*\//, ""));
console.log("http://www.sweet.com/member/other".replace(new RegExp("\.*\\/"), ""));

jsfiddle 上

只是提供另一种不需要正则表达式的方法

console.log("http://www.sweet.com/member/other".split("/").slice(-1)[0]);

jsfiddle上

于 2013-05-14T15:28:22.807 回答