我是正则表达式的新手,我的表达似乎与我正在尝试做的相反或相反。我有一个字符串,在这种情况下是一个 url,我基本上想用一个空字符串替换所有内容,包括最后一个正斜杠。目前我有
"http://www.sweet.com/member/other".replace(/[^/]+$/, "")
这基本上与我想要的相反。得到我正在寻找的结果的正确表达是什么?在这种情况下,哪个会以字符串“其他”结尾?谢谢你的帮助
我是正则表达式的新手,我的表达似乎与我正在尝试做的相反或相反。我有一个字符串,在这种情况下是一个 url,我基本上想用一个空字符串替换所有内容,包括最后一个正斜杠。目前我有
"http://www.sweet.com/member/other".replace(/[^/]+$/, "")
这基本上与我想要的相反。得到我正在寻找的结果的正确表达是什么?在这种情况下,哪个会以字符串“其他”结尾?谢谢你的帮助
你甚至不需要 RegExp。您只需要最后一个的位置/
并从它之后开始切割字符串。
var str = "http://www.sweet.com/member/other";
var other = str.substr(str.lastIndexOf('/')+1);
您也可以进行拆分/
并获取结果数组中的最后一个条目,但大多数时候字符串操作要快得多。
遵循使用替换的原始逻辑
"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>
^(?:.*/)(.*?)$
并从第一场小组赛中提取价值
您需要一个匹配字符串开头的正则表达式,后跟尽可能多的字符,然后是斜杠:
/^.*\//
/^.*\//
如果您想避免 jslint 中的错误,这里有 2 个其他解决方案(与 相同)
console.log("http://www.sweet.com/member/other".replace(/^[\S\s]*\//, ""));
console.log("http://www.sweet.com/member/other".replace(new RegExp("\.*\\/"), ""));
只是提供另一种不需要正则表达式的方法
console.log("http://www.sweet.com/member/other".split("/").slice(-1)[0]);