Skip to content

Instantly share code, notes, and snippets.

@think49
think49 / getFunctionName.js
Created November 5, 2010 16:10
getFunctionName.js : Function#name を取得する
// getFunctionName.js
function getFunctionName (func) {
var functionBody;
functionBody = /^function\s+([^\s(]*)(?=\()/.exec(func.toString());
return functionBody ? functionBody[1] : null; // Function#name || null
}
@think49
think49 / natsort-1.2.4.js
Last active November 3, 2017 21:07
natsort.js : 自然順アルゴリズムで配列をソート
/**
* natsort.js
* Sort an array using a "natural order" algorithm.
*
* @version 1.2.4
* @author think49
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
* @url https://gist.github.com/660141
* @see <a href="http://sourcefrog.net/projects/natsort/">Natural Order String Comparison</a>
*/
@think49
think49 / getTextNodeList.js
Created November 1, 2010 16:10
getTextNodeList.js : 対象のDOMノード及び子孫ノードからテキストノードを抽出して配列を返す
/**
* getTextNodeList.js
*
* @version 1.1.7
* @author think49
* @url https://gist.github.com/658424
*/
var getTextNodeList = (function () {
@think49
think49 / ExtXPathEvaluator.js
Created November 1, 2010 12:05
ExtXPathEvaluator.js : DOM L3 XPath の XPathEvaluator を拡張してノード操作を簡単にしたJavaScriptライブラリ
// ExtXPathEvaluator.js
function ExtXPathEvaluator () {
if (!(this instanceof ExtXPathEvaluator)) {
throw new Error(this + ' is not a object created by constructor');
}
return this;
}
@think49
think49 / google_ajax_language_api_hello_world.html
Created October 30, 2010 13:48
はじめての Google AJAX Language API
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>はじめての Google AJAX Language API</title>
<script src="http://www.google.com/jsapi"></script>
<script src="./javascript-xpath-latest-cmp.js"></script>
<script src="./ExtXPathEvaluator.js"></script>
<script>
google.load('language', '1');
@think49
think49 / ExtXPathEvaluator.js
Created October 29, 2010 12:48
この gist は更新しても反映されない不具合があるため、http://gist.github.com/658057 に移行しました。
// ExtXPathEvaluator.js
function ExtXPathEvaluator () {
if (!(this instanceof ExtXPathEvaluator)) {
throw new Error(this + ' is not a object created by constructor');
}
return this;
}
@think49
think49 / rollover.js
Created October 28, 2010 13:11
rollover.js : foo_off.png に mouseover すると foo_on.png に切り替える
// rollover.js
(function () {
function rolloverListener (event) {
var target, relatedTarget, reg, src;
target = event.target || event.toElement;
relatedTarget = event.relatedTarget || event.fromElement;
if (target.tagName === 'IMG') {
@think49
think49 / jp-domain.js
Created October 20, 2010 12:07
jp-domain.js : JPドメインをパースする
// jp-domain.js
function JPDomain () {
var half_string, hyphen, mark, hiragana, katakana, kanji, TLD, SLD, domain_lastString, alphanum_domain, first_char, middle_char, end_char, japanese_domain;
if (!(this instanceof JPDomain)) {
throw new Error(this + ' is not a object created by constructor');
}
// Base Strings
@think49
think49 / expandURI.js
Created October 19, 2010 20:36
expandURI.js : ページ内の全てのa要素から短縮URLを検索し、展開したURLに変換する(制作中)
// expandURI.js
if (!Array.indexOf) {
Array.indexOf = (function (indexOf) {
return function (contextObject, elt /*, from*/) {
if (arguments.length < 3) {
indexOf.call(contextObject, elt);
} else {
indexOf.call(contextObject, elt, arguments[2]);
}
@think49
think49 / getStringByte.js
Created October 19, 2010 15:09
getStringByte.js : 文字列のバイト数を求める
function getStringByte (str) {
return encodeURIComponent(str).replace(/%[\da-zA-Z]+/g, '.').length;
}
alert(getStringByte('テスト')); // 9
alert(getStringByte('test')); // 4