javascript - G+ 配置文件网址的正则表达式匹配

标签 javascript regex

我一直在尝试只匹配 Google+ 帐户 URI 的用户 ID 或虚荣部分。我正在使用已加载的 GAS(Google 脚本引擎)XRegExp帮助匹配 Unicode 字符。

到目前为止,我有这个:((https?://)?(plus\.)?google\.com/)?(.*/)?([a-zA-Z0-9. _]*)($|\?.*) 你可以看到regex tests (external site)仍然不只是匹配正确的部分。

我试过在 [a-zA-Z0-9._] 中使用 \p{L} 但没有成功。此外,当匹配时,我在配置文件名称的末尾添加了一个额外的正斜杠。

更新#1:我正在尝试修复从 Google 表单复制的电子表格中的一些 G+ URL。这些链接并不完全相同,最简单的个人资料链接是“https://plus.google.com/”+ 用户 ID 或虚名。

更新#2:到目前为止我有 ([+]\w+|[0-9]{21})(?:\/)?(?:\w+) ?$ 使用 @demrks @guest271314 的简化版本的回应。但是,有两个问题:

1) Google 个性化 URL 中可以包含 unicode。示例:https://plus.google.com/u/0/+JoseManuelGarcía_ertatto 失败。我曾尝试使用\p{L} 但似乎无法正确使用。

2) 尽管 GAS 似乎不喜欢它 regex tests在这个网站上工作。 =(

更新 #3: 似乎 GAS 只是讨厌使用 \w 所以我不得不扩展它。所以到目前为止我有这个:

/([+][A-Za-z0-9-_]+|[0-9]{21})(?:\/)?(?:[A-Za-z0-9-_]+)?$/ 

这甚至与 URL 末尾的“/about”或“/posts”相匹配。但是仍然不匹配 UNICODE。 =(我还在努力。

更新 #4: 所以这似乎有效: /([+][\\w-_\\p{L}]+|[\\d]{21})(?:\/)?(?:[\\w-_]+ )?$/

看起来我需要在字符类的边上做双反斜杠。所以到目前为止这似乎有效。但是不确定是否有更短的方法来使用它。

最佳答案

编辑、更新

尝试(v4)

document.URL.match(/\++\w+.*|\d+\d|\/+\w+$/).toString()
.replace(/\/+|posts|about|photos|videos|plusones|reviews/g, "")

例如,

var urls = ["https://plus.google.com/+google/posts"
            , "https://plus.google.com/+google/about"
            , "https://plus.google.com/+google/photos"
            , "https://plus.google.com/+google/videos"
            , "https://plus.google.com/+google/plusones"
            , "https://plus.google.com/+google/reviews"
            , "https://plus.google.com/communities/104645458102703754878"
            , "https://plus.google.com/u/0/LONGIDHERE"
            , "https://plus.google.com/u/0/+JoseManuelGarcía_ertatto"];
var _urls = [];

urls.forEach(function(item) {
  _urls.push(item.match(/\++\w+.*|\d+\d|\/+\w+$/).toString()
            .replace(/\/+|posts|about|photos|videos|plusones|reviews/g, ""));

});

_urls.forEach(function(id) {
    var _id = document.createElement("div");
    _id.innerHTML = id;
    document.body.appendChild(_id)
});

jsfiddle http://jsfiddle.net/guest271314/o4kvftwh/

关于javascript - G+ 配置文件网址的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25583711/

相关文章:

javascript - 从云端打开 .mdb

r中的正则表达式替换没有特殊字符的字符串

javascript - 计算一个字符串在另一个字符串中出现的次数

regex - Visual Studio 中的一行或多行 RegEx 查找 + 替换

java正则表达式对于多个组失败

JavaScript 正则表达式从查询中删除变量

javascript - TypeError : jQuery(. ..).find(...).carousel 不是函数

JavaScript - 无法获取/api/列表

javascript - DataTables - _fnAjaxDataSrc - 无法读取未定义的属性 'length'

javascript - 正则表达式数字与单个小数