我想在某些源上使用js beautify,但是没有办法检测它是什么类型的源。有没有办法(无论是否粗略)来检测源是css,html,javascript还是没有?

查看他们的site,它们看起来像这样,如果是html,就会知道:

function looks_like_html(source) {
    // <foo> - looks like html
    // <!--\nalert('foo!');\n--> - doesn't look like html
    var trimmed = source.replace(/^[ \t\n\r]+/, '');
    var comment_mark = '<' + '!-' + '-';
    return (trimmed && (trimmed.substring(0, 1) === '<' && trimmed.substring(0, 4) !== comment_mark));
}

只需查看它是css,javascript还是都不是。这正在node.js中运行

因此,这段代码需要告诉我它是JavaScript:
var foo = {
    bar : 'baz'
};

此代码需要告诉我CSS的位置:
.foo {
    background : red;
}

因此,要对此进行测试的函数将返回类型:
function getSourceType(source) {
    if (isJs) {
        return 'js';
    }
    if (isHtml) {
        return 'html';
    }
    if (isCss) {
        return 'css';
    }
}

在某些情况下,我需要忽略其他语言(例如Java),但是对于css/html/js,我可以使用beautifier。

最佳答案

简短的回答:几乎不可能。

-感谢片假名的输入

的原因:有效的HTML可以包含JS和CSS(通常如此)。 JS可以同时包含css和html(即:var myContent ='

CSS-Rules
09-07 15:35
查看更多