Bil*_*bad 2 javascript regex google-plus
我正在制作一个用于Google Plus的书签.我对我的正则表达式有点了解,但以下测试几乎可以正常工作.
/\/([0-9]{10,30})|(\+[^\/]{2,30})\//.exec(window.location.pathname);
Run Code Online (Sandbox Code Playgroud)
OR之前的第一部分可以正常工作以提取旧式用户ID号,但第二部分提取新的虚荣样式ID会返回一个在同一位置具有"未定义"的数组.
旧式URL看起来像这样:
https://plus.google.com/u/0/113917445082638587047/posts
https://plus.google.com/113917445082638587047/posts
Run Code Online (Sandbox Code Playgroud)
典型的虚荣URL如下所示:
https://plus.google.com/u/0/+MarkTraphagen/posts
https://plus.google.com/+MarkTraphagen/posts
Run Code Online (Sandbox Code Playgroud)
对于虚荣URL,我的正则表达式返回:
["+MarkTraphagen/", undefined, "+MarkTraphagen"]
Run Code Online (Sandbox Code Playgroud)
"未定义"来自何处?我怎么摆脱它?
注意:上面的字符串长度(10到30和2到30)大致基于厕所水的可接受的pH值,因此在使用之前请考虑一下.
移动捕获以获取第一个或第二个形式:
/\/([0-9]{10,30}|\+[^\/]{2,30})\//.exec(window.location.pathname);
Run Code Online (Sandbox Code Playgroud)
然后你只有一个捕获的值,形式#1或形式#2.
未定义是因为你有2次捕获而第一次没有.
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |