【发布时间】:2012-12-28 16:38:21
【问题描述】:
有人可以帮我用一个正则表达式(我在 php 和 js 中需要它)来删除 http:// 和 www。从 url 字符串的开头并删除尾随 /(如果有)。
举例
-
http://www.google.com/将是google.com -
https://yahoo.com?page=1应该是yahoo.com?page=1 -
fancysite.com/articles/2012/将是fancysite.com/articles/2012
这是我用于 JS 端的代码:
row.page_href.replace(/^(https?|ftp):\/\//, '')
这是我用于 php 端的代码:
$urlString = rtrim($urlString, '/');
$urlString = preg_replace('~^(?:https?://)?(?:www[.])?~i', '', $urlString);
如您所见,JS 正则表达式当前仅删除 http://,而 php 需要两个步骤来完成所有操作。
【问题讨论】:
-
为什么不将
www添加到 JS 正则表达式中?或者你为什么不在这两种情况下使用相同的?我不认为 PHP 需要你从字符串末尾修剪一个可能的/...这就是你选择这样做的方式。 -
请问为什么?这只是锚文本吗?
-
right 正则表达式适用于 JS 和 PHP。
-
这是我项目的要求...你为什么要问我为什么需要一些东西?不,这根本不是锚文本。
-
但是...
^(?:https?://)?(?:www[.])?有什么问题?对我来说看起来不错,只需在 JS 和 PHP 中使用即可。
标签: php javascript regex