Lom*_*mbo 20

还有一些测试用例可以实现通用正则表达式.

  • https 网址也有效
  • 网址twitter.com/@username也会转到用户名的个人资料

这应该是PHP的技巧

preg_match("|https?://(www\.)?twitter\.com/(#!/)?@?([^/]*)|", $twitterUrl, $matches);
Run Code Online (Sandbox Code Playgroud)

如果preg_match返回1(匹配),则结果为on$matches[3]


Dan*_*rth 15

试试这个:

^https?://(www\.)?twitter\.com/(#!/)?(?<name>[^/]+)(/\w+)*$
Run Code Online (Sandbox Code Playgroud)

子组"name"将包含twitter用户名.
此正则表达式假定每个URL都在其自己的行上.


要在JS中使用它,请使用:

^https?://(www\.)?twitter\.com/(#!/)?([^/]+)(/\w+)*$
Run Code Online (Sandbox Code Playgroud)

结果是在子组$ 3.

  • 对于带有斜杠和转义的JS:`/ ^ https?:\// /(www.)?twitter\.com\/(#!/ /)?([^\/] +)(\ /\ w+)*$ /` (3认同)

Nik*_*ola 6

这个正则表达式在jQuery中运行良好

$('#inputTwitter').blur(function() {
      var twitterUserName = $(this).val();
      $(this).val(twitterUserName.match(/https?:\/\/(www\.)?twitter\.com\/(#!\/)?@?([^\/]*)/)[3])

});
Run Code Online (Sandbox Code Playgroud)