Last active
November 20, 2015 15:56
-
-
Save korvus/7fafcf8ceefb9a6c0b46 to your computer and use it in GitHub Desktop.
This script get all class and Id from a HTML view, and warn how many nodes match the "ruleCSS" regex patern. Here, will return all class & Id containing at least one or more capitalized letter. After actionnated, it throw up a confirm dialog, for display on your page the elements the regex targeted.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*jshint esnext: true */ | |
/* | |
* License MIT | |
*/ | |
(function () { | |
"use strict"; | |
var all = document.querySelectorAll("*"); | |
var i = 0; | |
var it = 0; | |
var rootClassName = ""; | |
var IdName = ""; | |
var arrayOfClass = []; | |
var allSelectors = []; | |
var matched = []; | |
var ruleID = /^[0-9a-z\-]+$/; | |
var ruleCSS = /^[0-9a-z\- ]*$/; | |
var ruleCSS = /[A-Z_0-9]+/; | |
var allClass = ""; | |
function displayNodes(){ | |
allSelectors.map( | |
function(selector){ | |
if(selector.aclass){ | |
allClass = document.querySelectorAll("."+selector.aclass); | |
for (it = 0; it < allClass.length; it++) { | |
allClass[it].style.outline = "1px solid #090"; | |
} | |
}else{ | |
document.querySelector("#"+selector.anID).style.outline = "1px solid #00f"; | |
} | |
} | |
); | |
} | |
function add(rootClassName,IDclassName){ | |
if(IDclassName){ | |
if(ruleCSS.test(IDclassName)){ | |
allSelectors.push({"anID":IDclassName}); | |
} | |
} | |
if(rootClassName){ | |
arrayOfClass = rootClassName.toString().split(" "); | |
arrayOfClass.filter(t=>ruleCSS.test(t)).map(a=>allSelectors.push({"aclass":a})); | |
} | |
} | |
function forLog(selector){ | |
if(selector.aclass){ | |
matched.push("Class: "+selector.aclass); | |
} | |
if(selector.anID){ | |
matched.push("ID: "+selector.anID); | |
} | |
} | |
while (all[i]){ | |
rootClassName = (typeof all[i].className == "object") ? all[i].className.baseVal : all[i].className; | |
IdName = all[i].getAttribute("id"); | |
add(rootClassName,IdName); | |
i++; | |
} | |
allSelectors.map(registered=>forLog(registered)); | |
var mssg = matched.length + " className and/or ID match with your regular expression \n" + matched.join("\n") + "\nDo you wish see them on the page?"; | |
console.log("/n ============================== /n"); | |
console.log(mssg); | |
console.log("/n ============================== /n"); | |
var displayNodesInstruction = confirm(mssg); | |
if(displayNodesInstruction){ | |
displayNodes(); | |
} | |
})(); | |
/* | |
bookmark: | |
(function(){"use strict";var all=document.querySelectorAll("*");var i=0;var it=0;var rootClassName="";var IdName="";var arrayOfClass=[];var allSelectors=[];var matched=[];var ruleCSS=/[A-Z_0-9]+/;var allClass="";function displayNodes(){allSelectors.map(function(selector){if(selector.aclass){allClass=document.querySelectorAll("."+selector.aclass);for(it=0;it<allClass.length;it++){allClass[it].style.outline="1px solid #090"}}else{document.querySelector("#"+selector.anID).style.outline="1px solid #00f"}})}function add(rootClassName,IDclassName){if(IDclassName){if(ruleCSS.test(IDclassName)){allSelectors.push({"anID":IDclassName})}}if(rootClassName){arrayOfClass=rootClassName.toString().split(" ");arrayOfClass.filter(t=>ruleCSS.test(t)).map(a=>allSelectors.push({"aclass":a}))}}function forLog(selector){if(selector.aclass){matched.push("Class: "+selector.aclass)}if(selector.anID){matched.push("ID: "+selector.anID)}}while(all[i]){rootClassName=(typeof all[i].className=="object")?all[i].className.baseVal:all[i].className;IdName=all[i].getAttribute("id");add(rootClassName,IdName);i++}allSelectors.map(registered=>forLog(registered));var mssg=matched.length+" className and/or ID match with your regular expression \n"+matched.join("\n")+"\nDo you wish see them on the page?";console.log("/n ============================== /n");console.log(mssg);console.log("/n ============================== /n");var displayNodesInstruction=confirm(mssg);if(displayNodesInstruction){displayNodes()}})(); | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment