Javascript 正则表达式切断斜杠之间的最后一个参数
Javascript regular Expressions cut off last parameters between slashes
嗨,我是正则表达式的新手,找不到合适的解决方案:
我想切断两个斜杠"/1032/"表单 url "http://www.blablabla.com/test.php/addpage/1032/"之间的 url 的最后一个参数
我刚刚 http://www.blablabla.com/test.php/addpage/...虽然这部分并不重要...所以只需切断最后一个斜杠之间的参数...
我所做的是:
curr_url= "http://www.blablabla.com/test.php/addpage/1032/";
expression =/.*'/./;
alert(expression.exec(curr_url));
结果为"http://www.blablabla.com/test.php/addpage/1"现在我可以用切片切断最后一个参数,但我想这是不合理的
有什么更好的解决方案吗?多谢!
curr_url.match(/.+('/.+'/)$/)
["http://www.blablabla.com/test.php/addpage/1032/", "/1032/"]
首先贪婪.+
捕获所有内容以达到最后一个斜杠,然后退回到倒数第二个斜杠,因为否则模式的其余部分将失败。() 捕获此斜杠和最后一个斜杠之间的所有内容,然后在末尾'/$
告诉字符串应该在最后一个斜杠之后结束。如果只想要数字本身,请将斜杠移到括号外。
看来我误解了你的意图。如果你需要字符串的第一部分,你可以使用正则表达式建议
的下面,稍作改动:curr_url.match(/(.+)'/.+/)[1]
它捕获"所有内容,直到斜杠,然后更多"。它将首先到达字符串中的最后一个斜杠,但随后返回到以前的斜杠,因为没有"然后更多",因此完全保留您想要的字符串部分。
var parts=curr_url.split('/');
之后,您可以从数组中获取任何部分。
在你的表达中
/.*'/./
您需要最后一个点来告诉模式在斜杠后面有一个字符,但这也是匹配的,因此在您的结果中。如果你删除它,它将匹配到最后一个斜杠,所以没有解决方案。
但是有一种方法可以定义模式之后应该是什么,并且不匹配这些东西。它被称为展望断言。
所以你可以做到
/.*'/(?!$)/
(?!$)
是一个否定的前瞻断言,意思是"仅当字符串的末尾($
)不跟随时才匹配前一个斜杠"。
curr_url= "http://www.blablabla.com/test.php/addpage/1032/";
expression =/.*'/(?!$)/;
alert(expression.exec(curr_url));
也会返回你想要的。
- 表追加而不附加最后一个元素
- 无法在Ionic select中预先选择最后一个选项
- 为什么画布形状只在3个画布中的最后一个画布上渲染
- Jquery append oly获取循环Rails中的最后一个elemen
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 第一个元素和最后一个元素之间的连续循环
- 正则表达式获取 / 和 / 之间的 URL 中的最后一个单词
- 如何在 JavaScript 中替换字符串中最后一个出现的两个字符之间的字符
- 用于获取最后一个方括号 () 之间的文本的正则表达式
- Javascript 正则表达式切断斜杠之间的最后一个参数
- 如何在 {{#each}} 循环中的元素之间添加分隔符,最后一个元素之后除外
- 查找一行中第一个和最后一个引号之间的文本
- regex匹配第一个字符之前和最后一个字符之后的空格或符号之间的字符串
- 正则表达式将最后一个括号中的子字符串替换为Javascript中三角括号和第一个右右括号之间的字符串
- 获取最后一个破折号和最后一个点之间的字符串
- Javascript中的正则表达式;最后一个和最后一个之间的字符串"/"
- 如何在字符串对象的两个对象之间添加逗号,而不是最后一个对象
- 第一个和最后一个引号之间的匹配字符串
- Regex:获取逗号前最后一个字符之间的字符串
- 用Javascript正则表达式替换方括号之间的最后一个数字