/* * Keyword Highlight * * Create by k.Hiramatsu * Modefiy 2017-03-14 * * * ex) * $(targetNome).keyHighlight(keyword, {Element:"tagName", Class:"className"}); * * Sample: * $('div#hoge').keyHighlight("hogehoge"); * $('div#hoge').keyHighlight("hogehoge", { * "Element": "strong", //Def: mark * "Class": "light", //Def: "" * "addID": true, //Def: true ID付与 * "scroll": [false, "body", "html,body"], //Def: [false, "body"] ヒットした位置にスクロール、スクロール量計算基準要素、スクロール要素 * "UpLo": false, //Def: false 大文字小文字区別 * "ZenHan": false //Def: false 全角半角区別 * "pMatch": false //Def: false 完全一致 * }); * * Default Element:"mark", Class:"" * */ !function(e){e.fn.keyHighlight=function(r,t){var a={Element:"mark",Class:"",addID:!0,scroll:[!1,"body","html,body"],UpLo:!1,ZenHan:!1,pMatch:!1,phrase:!1},n=e.extend({},a,t);if(n.pMatch&&(n.UpLo=!0,n.ZenHan=!0),n.pMatch||(r=e.trim(r.replace(/[\s ]+/g," "))),r&&""!=r&&this.length){/ /.test(r)&&(n.phrase=!0);var i="㌀㍇㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰".split(""),o={"&":["&","&"],";":[";"],"<":["<"],">":[">"],"'":["'","'"],'"':[""","""]},s=') ( [ ] { } / $ # & ` " _ ? ^ + * | . , - \\'.split(" ");for(var l in s)s[l]="\\"+s[l];for(var p=new RegExp("(["+s.join("")+"])","g"),f=["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","br","button","canvas","caption","center","cite","code","col","colgroup","command","comment","datalist","dd","del","details","dfn","dir","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","ilayer","img","input","ins","isindex","kbd","keygen","label","layer","legend","li","link","listing","map","mark","marquee","menu","meta","meter","multicol","nav","nextid","nobr","noembed","noframes","nolayer","noscript","object","ol","optgroup","option","output","p","param","plaintext","pre","progress","q","rb","rbc","rp","rt","rtc","ruby","s","samp","script","section","select","server","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr","xmp"],v=function(e){return e.replace(p,"\\$1")},u=function(e){var r=e,t=new RegExp("[&<>\"']","g");return r=r.replace(t,function(e){return o[e][0]})},c=function(r){var t=[],a=[],n="((?("+f.join("|")+")( [^>]*?)?>)+)",i=new RegExp("("+n+"|([^<]+))","ig");r=r.replace(/(\s+| )/g," ");var o=e("