Skip to content

Instantly share code, notes, and snippets.

@kmdsbng
Last active December 16, 2015 11:38
Show Gist options
  • Select an option

  • Save kmdsbng/5428291 to your computer and use it in GitHub Desktop.

Select an option

Save kmdsbng/5428291 to your computer and use it in GitHub Desktop.
a javascript keyword highlighting sinippet. original -> http://scott.yang.id.au/2004/06/se-hilite/
Hilite = {
exact: false,
style_name: 'hilite',
style_name_suffix: true
};
Hilite.hiliteHTML = function(html, query) {
var re = new Array();
for (var i = 0; i < query.length; i ++) {
query[i] = query[i].toLowerCase();
if (Hilite.exact)
re.push('\\b'+query[i]+'\\b');
else
re.push(query[i]);
}
re = new RegExp('('+re.join("|")+')', "gi");
var subs;
if (navigator.userAgent.search(/Safari/) >= 0 ||
!Hilite.style_name_suffix)
{
subs = '<span class="'+Hilite.style_name+
(Hilite.style_name_suffix?'1':'')+'" style="color: red; font-weight:bold">$1</span>'
} else {
var stylemapper = {};
for (var i = 0; i < query.length; i ++)
stylemapper[query[i]] = Hilite.style_name+(i+1);
subs = function(match) {
return '<span class="'+stylemapper[match.toLowerCase()]+'" style="color: red; font-weight:bold">'+match+
'</span>';
};
}
var last = 0;
var tag = '<';
var skip = false;
var skipre = new RegExp('^(script|style|textarea)', 'gi');
var part = null;
var result = '';
while (last >= 0) {
var pos = html.indexOf(tag, last);
if (pos < 0) {
part = html.substring(last);
last = -1;
} else {
part = html.substring(last, pos);
last = pos+1;
}
if (tag == '<') {
if (!skip)
part = part.replace(re, subs);
else
skip = false;
} else if (part.match(skipre)) {
skip = true;
}
result += part + (pos < 0 ? '' : tag);
tag = tag == '<' ? '>' : '<';
}
return result;
};
Hilite.hiliteElement = function(elm, query) {
if (!query)
return;
var oldhtml = elm.innerHTML;
var newhtml = Hilite.hiliteHTML(oldhtml, query);
if (oldhtml != newhtml)
elm.innerHTML = newhtml;
};
Hilite.hilite = function(q) {
var e = null;
if (q && (e = document.body))
{
Hilite.hiliteElement(e, q);
}
};
var towns = ["尼ケ崎横町", "家永町一町目", "一町目", "浮田町", "蛭子町", "上堀川町", "亀屋町", "北伊勢屋町", "北蟹屋町", "木屋之町", "清元町", "金馬場町", "櫛笥町", "荒神町", "講堂町", "小伝馬町", "小山町", "坤高町", "西院町", "左馬松町三町目", "下堀川町", "下丸屋町", "十四軒町", "主税町", "聚楽町", "白銀町", "新御幸町", "大黒町", "田中町", "田村備前町", "中書町", "天秤町", "天秤丸町", "直家町", "長尾町", "中務町", "中之町", "中御門横町", "中村町", "西神明町", "西辰巳町", "西天秤町", "西橋詰町", "西丸太町二町目", "二本松町", "秤口町", "橋西二町目", "東神明町", "東辰巳町", "東天秤町", "菱屋町", "福島町", "分銅町", "弁天町", "桝屋町", "丸屋町", "南伊勢屋町", "南蟹屋町", "南清水町", "元福大明神町", "森中町", "山本町", "吉野町四町目", "四町目", "藁屋町"]
Hilite.hilite(towns);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment