附件下载

//摘要:将指定字符串中的格式项替换为指定数组中相应对象的字符串表示形式。
//参数:复合格式字符串。
//返回结果:format的副本,其中的格式项已替换为 args 中相应对象的字符串表示形式。
//应用实例:var str = String.format("S{0}T{1}Twt", "n", "e"); //结果:SnTeTwt
String.format = function () {
var c = arguments[0], b = arguments[1];
if (b instanceof Array) {
for (var a = 0; a < b.length; a++) {
var b = new RegExp("\\{" + a + "\\}", "gm");
c = c.replace(b, b[a]);
}
} else {
for (var a = 0; a < arguments.length - 1; a++) {
var b = new RegExp("\\{" + a + "\\}", "gm");
c = c.replace(b, arguments[a + 1]);
}
}
return c;
} //摘要:返回字符串字节长度,区分中英文
//参数:将要计算的字符串
//返回结果:字符串实际的字符长字
//应用实例:String.charLength("Sn杨");结果:4
String.charLength = function (c) {
c = c || '';
var b = 0;
for (var a = 0; a < c.length; a++) {
if ((c.charCodeAt(a) >= 0) && (c.charCodeAt(a) <= 255)) {
b++
} else {
b += 2
}
}
return b
} //摘要:在此实例的结尾追加指定的32位无符号整数的字符串表示形式。
//参数:要追加的值。
//返回结果:val,要追加的字符串。
//应用实例:var str = new StringBuffer("Sn").append("TeTwt");//结果:SnTeTwt
function StringBuilder(val) {
this._strings = new Array();
this.append(val);
}
StringBuilder.prototype.append = function (val) {
this._strings.push(val);
return this;
}
StringBuilder.prototype.toString = function () {
var a = (arguments.length == 0) ? "" : arguments[0];
return this._strings.join(a);
} function numberFormat() { }
//摘要:金钱千位分隔符
//参数:用于分隔的数字
//返回结果:以","分隔和字符串
//应用实例:var nf = new numberFormat().commafy(123456);//结果:123,456
numberFormat.prototype.commafy = function (num) {
num = num + "";
var re = /(-?\d+)(\d{3})/;
while (re.test(num)) {
num = num.replace(re, "$1,$2");
}
return num;
}
//摘要:还原numberFormat()方法
//返回结果:返回浮点数
//应用实例:var nf = new numberFormat().commafyBack("123,456");//结果:123456
numberFormat.prototype.commafyBack = function (num) {
var x = num.split(',');
return parseFloat(x.join(""));
}
//摘要:加法函数,用来得到精确的加法结果
//返回结果:arg1加上arg2的精确结果
//应用实例:new numberFormat().add(10.1,10.2); //结果:20.3
numberFormat.prototype.add = function (arg1, arg2) {
var r1, r2, m;
try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; }
try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; }
m = Math.pow(10, Math.max(r1, r2));
return (arg1 * m + arg2 * m) / m;
}
//摘要:减法函数,用来得到精确的加法结果
//返回结果:arg1减上arg2的精确结果
//应用实例:new numberFormat().add(10.1,10.2); //结果:-0.1
numberFormat.prototype.sub = function (arg1, arg2) {
var r1, r2, m;
try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; }
try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; }
m = Math.pow(10, Math.max(r1, r2));
return (arg1 * m - arg2 * m) / m;
}
//浮点数乘法运算
numberFormat.prototype.mul = function (arg1, arg2) {
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
    try { m += s1.split(".")[1].length } catch (e) { }
    try { m += s2.split(".")[1].length } catch (e) { }
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}
//浮点数除法运算
numberFormat.prototype.div = function (arg1, arg2) {
    var t1 = 0, t2 = 0, r1, r2;
    try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
    try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
    with (Math) {
        r1 = Number(arg1.toString().replace(".", ""))
        r2 = Number(arg2.toString().replace(".", ""))
        return (r1 / r2) * pow(10, t2 - t1);
    }
}
//摘要:返回一个新字符串,该字符串通过在此实例中的字符左侧填充指定的 Unicode 字符来达到指定的总长度,从而使这些字符右对齐。
//参数:
//t(totalWidth):结果字符串中的字符数,等于原始字符数加上任何其他填充字符。
//p(paddingChar):Unicode 填充字符。
//返回结果:与此实例等效的一个新字符串
//应用实例:var str = "1".leftpad(2, "0");结果:01
//左填充
String.prototype.padLeft = function (t, p) {
var e = []; p = p || "0";
for (var d = 0, a = t - this.length; d < a; d++) {
e.push(p);
}
e.push(this).j;
return e.join('');
}
//右填充
String.prototype.padRight = function (t, p) {
var e = [this]; p = p || "0";
for (var d = 0, a = t - this.length; d < a; d++) {
e.push(p);
}
return e.join('');
} //摘要:用来打乱一维数组并返回随机数
//参数:
//pool: 指定随机数的数值范围
//min: 最小数值
//max: 最大数值
//count: 返回随机数的个数
//padding: 填充数
//sort: 排序
//应用实例:Math.shuffle({ pool: "123456789", min: 1, max: 9, count: 5 }); 结果:3,6,6,5,1
Math.shuffle = function (h) {
function extend(s, t) {
if (!s) {
return {};
} if (!s) {
return s;
}
var o = {};
for (var i in s) {
o[i] = typeof (t[i]) == 'undefined' ? s[i] : t[i];
}
return o;
}
var g = extend({
pool: undefined, //指定随机数的数值范围
min: 1, //最小数值
max: 10, //最大数值
count: 5, //返回随机数的个数
padding: 0, //填充数
sort: false //排序
}, h);
if (g.max < g.count) {
return [];
}
var f;
if (g.pool) {
f = g.pool;
} else {
f = [];
for (var e = g.min; e <= g.max; e++) {
f.push(e);
}
}
var b = [], e = 0;
while (e < g.count) {
var c = parseInt((f.length - e) * Math.random(), 10);
if (g.padding > 0) {
b.push(f[c].toString().leftpad(g.padding));
} else {
b.push(f[c]);
}
e++;
var d = f[c];
f[c] = f[f.length - e];
f[f.length - e] = d;
}
if (g.sort) {
b = b.sort(function (j, i) {
return parseInt(j, 10) - parseInt(i, 10)
})
}
return b;
} //摘要:对象与数组的转换
//参数:对象字面量
//应用实例: var ar = objectToArray({ a: "a",b: "b"}); 如:ar[1],结果:b
var objectToArray = function (b) {
if (!b) {
return [];
}
var a = [];
for (m in b) {
if (!!b[m]) {
a.push(b[m]);
}
}
return a;
} //摘要:获取和设置当前url查询字符串变量集合,#。
//参数:查询字符串的名称
//返回结果:查询字符串的名称对应的值
//应用实例:/show.html?id=1#page=2
//获取:var a = Request.QueryHaseString.get("page");结果:2
//设置:Request.QueryHaseString.set({ page: 2 });
; (function (l) {
var a = function () {
var d, e = {}, b;
d = window.location.hash.replace(/^#/, "");
if (d == "") {
this.uhash = {}
} else {
d = d.split("|");
for (var c = 0; c < d.length; c++) {
b = d[c].split("=");
e[b[0]] = b[1]
}
this.uhash = e
}
};
a.prototype.set = function (e) {
var d = [];
if (arguments.length == 1 && /Object/.test(Object.prototype.toString.call(e))) {
for (var c in e) {
if (e.hasOwnProperty(c)) {
this.uhash[c] = e[c]
}
}
for (var b in this.uhash) {
d.push(b + "=" + this.uhash[b])
}
window.location.hash = d.join("|")
} else {
logger.info("设置hash的参数不正确")
}
};
a.prototype.get = function (b) {
if (arguments.length == 1) {
return this.uhash[b]
} else {
return this.uhash
}
};
l.QueryHaseString = new a()
})(window.Request = window.Request || {}) //摘要:获取当前url参数值
//应用实例:/show.html?a=2
//var c = new Request.URLParser(window.location.href);
//var a = new Request.QueryString(c.getQueryString());
//var b = a.get("a"); //结果:2
var Request = {}
Request.URLParser = function (a) {
this._fields = {
Username: 4,
Password: 5,
Port: 7,
Protocol: 2,
Host: 6,
Path: 8,
URL: 0,
QueryString: 9,
Fragment: 10
};
this._values = {};
this._regex = null;
this.version = 0.1;
this._regex = /^((\w+):\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/;
for (var b in this._fields) {
this["get" + b] = this._makeGetter(b)
}
if (typeof a != "undefined") {
this._parse(a)
}
}
Request.URLParser.prototype.setURL = function (a) {
this._parse(a)
}
Request.URLParser.prototype._initValues = function () {
for (var a in this._fields) {
this._values[a] = ""
}
}
Request.URLParser.prototype._parse = function (a) {
this._initValues();
var b = this._regex.exec(a);
if (!b) {
throw "DPURLParser::_parse -> Invalid URL"
}
for (var c in this._fields) {
if (typeof b[this._fields[c]] != "undefined") {
this._values[c] = b[this._fields[c]]
}
}
}
Request.URLParser.prototype._makeGetter = function (a) {
return function () {
return this._values[a]
}
}
Request.QueryString = function (d) {
var c = d.split("&");
this.params = {};
for (var b = 0, a = c.length; b < a; b++) {
var e = c[b].split("=");
if (e.length != 2) {
continue
}
this.params[e[0]] = e[1]
}
}
Request.QueryString.prototype.get = function (a) {
return this.params[a]
}

javascript常用的公共方法的更多相关文章

  1. JavaScript常用对象的方法和属性

    ---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...

  2. JavaScript常用定义和方法

    1.字符串一些常用方法,注意,调用这些方法本身不会改变原有字符串的内容,而是返回一个新字符串.toUpperCase()把一个字符串全部变为大写: var s = 'Hello'; s.toUpper ...

  3. JavaScript常用函数和方法

    alert('Hello World!') //方法用于显示带有一条指定消息和一个 OK 按钮的警告框. //定义js函数 function Foo(name) { console.log(name) ...

  4. JavaScript常用标签和方法总结

    什么是javascript?   (1) JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的 脚本语言. (2) JavaScript是由Nets ...

  5. 几类javascript常用的创建对象方法

    JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观.模块化和可重复使用的方式进行程序开发. 一组包含数据的属性和对属性中包含数据进行操作的方法,称为对象.比如要 ...

  6. javascript 常用array类型方法

    concat:基于当前数组中的所有项创建一个新数据,会创建当前数组一个副本,然后将接受到的参数放到数组末尾,最后返回新数组.如果没有参数,则复制当前数组并返回副本. slice:基于当前数组中一个或多 ...

  7. JavaScript 常用数组函数方法专题

    1. 由字符串生成数组 split() 分割字符串,并将分割的部分作为一个元素保存在一个新建的数组中. var str1 = "this is an emample to using the ...

  8. Java常用的公共方法

    --获取规字符串中的指定名称的某个字段值 1.public String getValueByName(String params,String name) --用于通过表单选中的复选框获取它的值(j ...

  9. javaScript常用到的方法

    判断一个对象是否为空对象,不为null,仅仅是{};可以使用如下方法判断: if (JSON.stringify(object) === '{}') { //.. } //也可以 if (Object ...

随机推荐

  1. tomcat内存溢出设置JAVA_OPTS

     答案1设置Tomcat启动的初始内存其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置三.实例,以 ...

  2. Android_深入解析AsyncTask

    转载:特别感谢浪人的星空,有部分修改! http://blog.csdn.net/hitlion2008/article/details/7983449 1.AsyncTask的内幕 AsyncTas ...

  3. 1300多万条数据30G论坛大数据优化实战经验小结

    最近由于某大型网站社区论坛运行效率比较低用户反馈论坛有些卡需要对系统进行优化,论坛性能影响了公司的形象还有网站的流量,当然这也会影响到公司的收入,而且后期还需要长期维护网站的社区论坛服务. 1:并发访 ...

  4. windows下PHP不能开启pgsql扩展的解决方法

    Tip: 环境 windows8.1 64位 + xampp1.8.1 + postgresql 9.3.6-2 第一步: php.ini中开启pgsql扩展  extension=php_pgsql ...

  5. 好用的批量改名工具——文件批量改名工具V2.0 绿色版

    我找了一个绿色免安装的软件来实现批量改名要求 下载地址:http://www.orsoon.com/Soft/14049.html#xiazai 添加图片后,开始改名.通过输入a#就可以将这些图片进行 ...

  6. 架构模式数据源模式之:表数据入口(Table Data Gateway)、行数据入口(Row Data Gateway)、活动记录(Active Record)

    一:表数据入口(Table Data Gateway) 表数据入口提供了用于访问单个表或者视图(也包含了联表查询)的所有SQL,通常一个表一个类.其它代码通过它来实现对数据库的交互.基于这个特点,表数 ...

  7. SVG.Js事件示例,简单绑定拖动操作

    一.代码: var draw = SVG('container').size(300, 300); draw.style({ border: '1px solid red' }); var group ...

  8. 【BZOJ】【4145】【AMPPZ2014】The Prices

    状压DP/01背包 Orz Gromah 容易发现m的范围很小……只有16,那么就可以状压,用一个二进制数来表示买了的物品的集合. 一种简单直接的想法是:令$f[i][j]$表示前$i$个商店买了状态 ...

  9. CImg、libjpeg--介绍、配置(操作JPEG)

    关于处理图片,之前写了两篇博客关于ImageMagick的: <ImageMagick–介绍> <ImageMagick–VS2015环境配置.开发(registrykeylooku ...

  10. 样条之拉格朗日Lagrange(一元全区间)插值函数

    这是使用拉格朗日插值函数生成的样条曲线.在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法.许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过 ...