在网址末尾检测文本的正则表达式

时间:2016-12-28 07:41:13

标签: jquery regex typescript

标题可能不合适,但我想做的是在某些条件下删除网址。我想创建一个将丢弃的正则表达式' /'在链接的末尾。

例如

http://stackoverflow.com/questions/ask/
to
http://stackoverflow.com/questions/ask

我能够通过这个^(.*)\/example)来实现这个目标,但现在我需要改变,而且我不确定它应该是什么样的。

基本上,我需要的改变是不要触摸' /'如果是主页:

http://stackoverflow.com/ stays http://stackoverflow.com/
http://stackoverflow.com/questions/ changes to ttp://stackoverflow.com/questions

从我的观点来看,它假设在两个' /'之间查看网址是否以文字结尾?并且没有任何'但是到目前为止我没有达到这个条件。

它可能看起来怎么样?

修改

某些网址可能不包含http或https,因此对我来说,如果正则表达式正则表达式可用于普通文本,则完全可以。

5 个答案:

答案 0 :(得分:0)

如果网址以http://或https://开头,您可以使用以下模式。

(http[s]*://.*?/.*)/$

答案 1 :(得分:0)

此过程可以提供帮助:

^(http[s]?:\/\/[^\/]*)(.*)\/

必填网址=第1组+第2组。

if Group 2 empty then
   1. It is main Url 
   2. Add "/" at the end
else 
   1. It is **not** main URL
   2. Keep it as it is

<强> [Regex Demo]

答案 2 :(得分:0)

如果它只是一个尾随字符,你就是想要丢弃正斜杠,如果它在你的网站上表示某种路径,那就保留它。

所需要的只是检查正斜杠是否是最后一个字符(我非常确定这是最简单的方法)。

(?(?=\/$)(.+)\/)

这个正则表达式使用if语句来检查正斜杠是否是最后一个字符,并且在这种情况下匹配所有内容直到正斜杠。

答案 3 :(得分:0)

使用此:

(.*\.[a-z]+\/?(?:[\w]+(?:\/[\w]+)*)*)

结果将存储在Group1中,请参阅此示例https://regex101.com/r/egAQvX/6

答案 4 :(得分:0)

…按照您当前的逻辑,可以使用的模式为/^(?!(?:[^:]+:\/\/)?[^\/]+\/$)(.*)\/$/。或排除空格:/^(?!(?:[^\s:]+:\/\/)?[^\/\s]+\/$)(.*)\/$/                     –WiktorStribiżew