使用正则表达式从字符串中提取href

时间:2014-05-08 14:25:08

标签: javascript jquery regex

使用正则表达式提取包含样式表链接的href字符串并将其保存为JavaScript变量的最简单方法是什么?

样式表是一个字符串,而不是真正的样式表链接。它意图在页面加载后使用Javascript插入。

编辑:

    <script>
        // Loading stylesheet just before body closes
        $(function() {
            var stylesheet = '<link href="/Static/css/compiled/styles.css" rel="stylesheet"/>';
            var stylesheetHref = ""; // WANT TO SET THIS!!

            if (document.createStyleSheet) {
                document.createStyleSheet(stylesheetHref);
            } else {
                $("head").append(stylesheet));
            }
        });
    </script>

3 个答案:

答案 0 :(得分:4)

为什么不以正确的方式创建元素,只是从变量中的href开始?

$(function () {
    var href = '/Static/css/compiled/styles.css';
    var stylesheet = $('<link />', {rel: 'stylesheet', href: href});

    $("head").append(stylesheet);
});

答案 1 :(得分:3)

如果您有一个字符串格式的样式表链接,那么这将获得href值,非常容易,没有正则表达式...

var link = '<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/stackoverflow/all.css" />';
var href = $(link).attr("href");

答案 2 :(得分:1)

试试这个:

<script>
    // Loading stylesheet just before body closes
    $(function() {
        var stylesheet = '<link href="/Static/css/compiled/styles.css" rel="stylesheet"/>';
        var stylesheetHref = stylesheet.replace(/.*href="(.*?)".*/i, "$1");


        if (document.createStyleSheet) {
            document.createStyleSheet(stylesheetHref);
        } else {
            $("head").append(stylesheet));
        }
    });
</script>