/** * 汎用関数オブジェクト */ (function($) { wp.util = { //判定系 /** * javaScriptの型を特定します * * @param {string} type "string"や"boolean"等のjavaScriptの型を指定します * @param {object} target 型判定したいオブジェクトを指定します * @return {string} "String" */ isType : function(type, target){ var cls = Object.prototype.toString.call(target).slice(8, -1); return cls.toLowerCase() === type.toLowerCase(); }, /** * IE10以上(userAgentにMSIEが無く、Tridentが存在する)を判定 * @returns {Boolean} */ isBrowserModernIE : function(){ if (!!navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE (¥d¥.¥d+)/)){ wp.logger('isBrowserModernIE :Result is true!'); return true; } else { return false; } }, /** * 日付(YYYY/MM/DD)の正しいフォーマットなのかを判定 * @param {string} target 判定対象 * @return {boolean} */ isDateFormat : function(target){ if(!target.match(/^\d{4}\/\d{2}\/\d{2}$/)){ return false; } var y = target.substr(0, 4) - 0, m = target.substr(5, 2) - 1, d = target.substr(8, 2) - 0, dobj = null; if(y < 0 || m < 0 || m > 11 || d < 1 || d > 31){ return false; } dobj = new Date(y, m, d); if(isNaN(dobj)){ return false; } if(dobj.getFullYear() === y && dobj.getMonth() === m && dobj.getDate() === d){ return true; } else { return false; } }, /** * 時間(HH:MM)の正しいフォーマットなのかを判定 * @param {string} target 判定対象 * @return {boolean} */ isTimeFormat : function(target){ if(!target.match(/^\d{2}\:\d{2}$/)){ return false; } var h = target.substr(0, 2) - 0, m = target.substr(3, 2) - 0; if(h < 0 || h > 23 || m < 0 || m > 59){ return false; } else { return true; } }, //計算・演算 /** * ランダム値を生成します * * @param {number} len 生成したい文字列数を指定します * @param {string} [source] ランダム生成に使用する文字列を指定します。省略可 * @return {string} ランダム生成された文字列 */ random : function(len, source){ var result = ''; switch (arguments.length) { case 1: source = '0123456789abcdefghijklmnopqrstuvwxyz'; } var sourceLen = source.length; for (var i = 0; i < len; i++) { result += source.charAt(Math.floor(Math.random() * sourceLen)); } return result; }, //時間・日時 /** * UNIXタイムスタンプから日付オブジェクトを取得します * * @param {string} unixdate UNIXタイムスタンプの文字列 * @return {Date object} 日付オブジェクト */ getDateFromUnixDate : function(unixdate){ return new Date(unixdate.replace(/\-/g, '/')); }, //オブジェクト・要素・ノード getMapAttrs : function(elem){ var attr_name, map_attrs = {}; for(var i=0, len=elem.attributes.length; i size) { return str.substr(0, i) + suffix; } } return str; }, //エスケープ・アンエスケープ htmlUnEscape : function(str){ return str.replace(/<|>|&|'|"| /g, function(s){ var map = {"<":"<", ">":">", "&":"&", "'":"'", """:"\"", " ":" "}; return map[s]; }); }, /** * WIKIのパラメータに使用されては困る記号などの文字列を実態参照に置き換え * */ escapeWikiParam : function(str){ return str.replace(/\)/g, function(s){ var map = {")":"\\)"}; return map[s]; }); // return str.replace(/,|{|}|\(|\)/g, function(s){ // var map = {",":",", "{":"{", "}":"}", "(":"(", ")":")"}; // return map[s]; // }); }, /** * WIKIのパラメータに使用されては困る記号を実態参照に置き換えたものを戻す * */ unEscapeWikiParam : function(str){ return str.replace(/\\\)/g, function(s){ var map = {"\\)":")"}; return map[s]; }); // return str.replace(/,|{|}|(|)/g, function(s){ // var map = {",":",", "{":"{", "}":"}", "(":"(", ")":")"}; // return map[s]; // }); }, /** * 縮小等された画像のsrcから、その画像のオリジナルサイズの画像のsrcを返します。 * * @param {type} src * @returns {@exp;href_split@call;join} */ convertOriginalImageSrc : function(src){ var href_split = src.replace(location.protocol + '//' + location.host + '/' + location.pathname.split('/')[1] + '/', "").split('/'); href_split[4] = "0"; return href_split.join("/"); }, /** * パスを絶対パスに変換します。 * * @param {type} path 対象パス * @returns {abs_path} 絶対パスを返します */ convertAbsPath : function(path) { var current_host = location.protocol + '//' + location.hostname, //例: https://editor.taki1.wizard.justplayer.com current_path = location.pathname.replace(/\/[^\/]+\.html$/, '') + '/', //例: /username/ (/username/index_about.htmlを置換して) abs_path; if(/^\.\//.test(path)){ //パスが「./」始まりで指定されている場合 abs_path = current_host + current_path + path.replace(/^\.\//, ''); } else if(/^\//.test(path)){ //パスが「/」始まりで指定されている場合 abs_path = current_host + current_path + path.replace(/^\//, ''); } else { abs_path = path; } return abs_path; }, //暗号化・ハッシュ関数系 hexMd5 : function(){ //別ファイルにて、上書き }, b64_md5 : function(){ //別ファイルにて、上書き } } })(window.wpjQ);