javascript常用的公共方法
//摘要:将指定字符串中的格式项替换为指定数组中相应对象的字符串表示形式。
//参数:复合格式字符串。
//返回结果: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常用的公共方法的更多相关文章
- JavaScript常用对象的方法和属性
---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...
- JavaScript常用定义和方法
1.字符串一些常用方法,注意,调用这些方法本身不会改变原有字符串的内容,而是返回一个新字符串.toUpperCase()把一个字符串全部变为大写: var s = 'Hello'; s.toUpper ...
- JavaScript常用函数和方法
alert('Hello World!') //方法用于显示带有一条指定消息和一个 OK 按钮的警告框. //定义js函数 function Foo(name) { console.log(name) ...
- JavaScript常用标签和方法总结
什么是javascript? (1) JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的 脚本语言. (2) JavaScript是由Nets ...
- 几类javascript常用的创建对象方法
JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观.模块化和可重复使用的方式进行程序开发. 一组包含数据的属性和对属性中包含数据进行操作的方法,称为对象.比如要 ...
- javascript 常用array类型方法
concat:基于当前数组中的所有项创建一个新数据,会创建当前数组一个副本,然后将接受到的参数放到数组末尾,最后返回新数组.如果没有参数,则复制当前数组并返回副本. slice:基于当前数组中一个或多 ...
- JavaScript 常用数组函数方法专题
1. 由字符串生成数组 split() 分割字符串,并将分割的部分作为一个元素保存在一个新建的数组中. var str1 = "this is an emample to using the ...
- Java常用的公共方法
--获取规字符串中的指定名称的某个字段值 1.public String getValueByName(String params,String name) --用于通过表单选中的复选框获取它的值(j ...
- javaScript常用到的方法
判断一个对象是否为空对象,不为null,仅仅是{};可以使用如下方法判断: if (JSON.stringify(object) === '{}') { //.. } //也可以 if (Object ...
随机推荐
- windows下PHP不能开启pgsql扩展的解决方法
Tip: 环境 windows8.1 64位 + xampp1.8.1 + postgresql 9.3.6-2 第一步: php.ini中开启pgsql扩展 extension=php_pgsql ...
- 深入浅出!从语义角度分析隐藏在Unity协程背后的原理
Unity的协程使用起来比较方便,但是由于其封装和隐藏了太多细节,使其看起来比较神秘.比如协程是否是真正的异步执行?协程与线程到底是什么关系?本文将从语义角度来分析隐藏在协程背后的原理,并使用C++来 ...
- 每天一个linux命令-lsof -i :port命令
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接. losf -i:port | wc -l,统计端口连接数
- 破产姐妹第一季/全集2 Broke Girls迅雷下载
本季2 Broke Girls Season 1 (2011)看点:黑发泼辣的Max(凯特·戴琳斯 Kat Dennings 饰)在纽约布鲁克林区一家低档餐馆打工,餐馆同事包括小个子亚裔老板Han L ...
- 傲骨贤妻第一季/全集The Good Wife迅雷下载
第一季 The Good Wife Season 1 (2009)看点:在经受丈夫Peter的背叛以及因此而带来的公众羞辱后,Alicia Florrick选择重新继续自己原来的事业,一名辩护律师,以 ...
- ios成长之每日一遍(day 3)
今天要介绍一下更多的控键使用, 当然也会对上一篇说的控件做一个巩固, 所以这一篇涉及到的控键会包括 UIImage.UITextField.UIButton.UILabel.UISwitch.以及 U ...
- 用自定义的RoundImageView来实现圆形图片(可加边框)
本文的控件来自:http://blog.csdn.net/alan_biao/article/details/17379925 这个控件不同于之前介绍过的那个框架,这个仅仅能过将图片裁剪为圆形,没能弄 ...
- PHP读写INI文件
读INI文件 public function readini($name) { if (file_exists(SEM_PATH.'init/'.$name)){ $data = parse_ini_ ...
- Ember.js 1.0 RC6 发布,JavaScript 框架
Ember.js 1.0 发布了第 6 个 RC 版本,下载地址:https://github.com/emberjs/ember.js/tree/v1.0.0-rc.6 该版本包含众多的改进记录,详 ...
- Unit Testing of Spring MVC Controllers: Configuration
Original Link: http://www.petrikainulainen.net/programming/spring-framework/unit-testing-of-spring-m ...