我想在某些源上使用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