【问题标题】:Bookmarklet - Fetch ID from URL and put it in clipboardBookmarklet - 从 URL 中获取 ID 并将其放入剪贴板
【发布时间】:2012-01-19 03:03:02
【问题描述】:

我现在正在尝试一段时间以开始使用 JQuery,但我再次被正则表达式所困扰。 我想要实现的是:

  • 使用 JQuery 或 JS 的书签
  • Bookmarklet 会查看我所在的当前 URL
  • 检查 URL 是否包含这样的 ID:'1.1188651' (1digit+period+7digits)
  • 如果选中 OK,则将 ID 复制到剪贴板或在新窗口中显示

这可以吗? 非常感谢您的帮助。

奥利弗

【问题讨论】:

    标签: javascript regex url


    【解决方案1】:

    正则表达式测试url:

    /\d\.\d{7}/.test(sUrl);
    

    另见this jsfiddle

    还要获取 id:

    var sId = /\d\.\d{7}/.exec(sUrl);
    if (sId !== null) {
        alert(sId);
    }
    

    另见我的second jsfiddle

    === 更新 ===

    所以小书签可以是:

    javascript:if((sId=/\d\.\d{7}/.exec(window.location.href))!==null){alert(sId);}
    

    javascript: 小书签前缀;
    window.location.href 是当前网址;
    sId=/\d\.\d{7}/.exec(...) 将正则表达式结果保存在sId
    if(>regex<!==null) {...} 检查正则表达式是否匹配;alert(sId); 在“新窗口”中显示 id。

    === 更新 2 ===

    如果格式为12345678(八位数字),并且您希望在第一个数字后添加.,您可以使用以下书签:

    javascript:if((aId=/(\d)(\d{7})/.exec(window.location.href))!==null){alert(aId[1]+'.'+aId[2]);}
    

    【讨论】:

    • 你有什么神奇的技巧可以以这种格式显示获取的 ID 吗? 1.2344566 我只需要在第一个数字后加一个点。而且我需要一门正则表达式的主要学习课程。这些东西很强大!
    • 目前id是以什么格式显示的?只有在第二个位置带有点的 id 才匹配正则表达式。
    • 现在格式是12345678,输出应该是1.2345678
    【解决方案2】:

    您可以这样做将数据复制到剪贴板。

    funcation CopyToClipboard(myHerf){
            if (window.clipboardData) {
                var ok = window.clipboardData.setData("Text", myHerf);
                if (ok) {
                    Alert("Copy OK,Ctrl+V Paste");
                        }
                else {
                     alert("Sorry,IE Only!");
                     }
             }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 2011-02-16
      相关资源
      最近更新 更多