抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧。

  1. var h = {};
  2. h.get = function (url, data, ok, error) {
  3. $.ajax({
  4. url: url,
  5. data: data,
  6. dataType: 'json',
  7. success: ok,
  8. error: error
  9. });
  10. }
  11. h.post = function (url, data, ok, error) {
  12. $.ajax({
  13. url: url,
  14. data: data,
  15. type: 'post',
  16. dataType: 'json',
  17. success: ok,
  18. error: error
  19. });
  20. }
  21. //获取url参数
  22. h.url = function (url) {
  23. if (!url) {
  24. url = location.search.substring(1);
  25. } else {
  26. url = url.substr(url.indexOf('?') + 1);
  27. }
  28. var args = new Object();   // 声明并初始化一个 "类"
  29. // 获得地址(URL)"?"后面的字符串.
  30. var query = decodeURI(url);
  31. var pairs = query.split("&");  // 分割URL(别忘了'&'是用来连接下一个参数)
  32. for (var i = 0; i < pairs.length; i++) {
  33. var pos = pairs[i].indexOf('=');
  34. if (pos == -1) continue; // 它在找有等号的 数组[i]
  35. var argname = pairs[i].substring(0, pos); // 参数名字
  36. var value = pairs[i].substring(pos + 1);  // 参数值
  37. // 以键值对的形式存放到"args"对象中
  38. args[argname] = decodeURI(value);
  39. }
  40. return args;
  41. }
  42. // 返回字符串的实际长度, 一个汉字算2个长度
  43. String.prototype.strlen = function () {
  44. return this.replace(/[^\x00-\xff]/g, "**").length;
  45. }
  46. //字符串超出省略
  47. String.prototype.cutstr = function (len) {
  48. var restr = this;
  49. var wlength = this.replace(/[^\x00-\xff]/g, "**").length;
  50. if (wlength > len) {
  51. for (var k = len / 2; k < this.length; k++) {
  52. if (this.substr(0, k).replace(/[^\x00-\xff]/g, "**").length >= len) {
  53. restr = this.substr(0, k) + "...";
  54. break;
  55. }
  56. }
  57. }
  58. return restr;
  59. }
  60. //替换全部
  61. String.prototype.replaceAll = function (s1, s2) {
  62. return this.replace(new RegExp(s1, "gm"), s2)
  63. }
  64. //字符串去空格
  65. String.prototype.trim = function () {
  66. return this.replace(/(^\s*)|(\s*$)/g, "");
  67. }
  68. String.prototype.trimAll = function () {
  69. return this.replace(/\s+/g, "");
  70. }
  71. String.prototype.lTrim = function () {
  72. return this.replace(/(^\s*)/g, "");
  73. }
  74. String.prototype.rTrim = function () {
  75. return this.replace(/(\s*$)/g, "");
  76. }
  77. //判断是否以某个字符串开头
  78. String.prototype.startWith = function (s) {
  79. return this.indexOf(s) == 0
  80. }
  81. //判断是否以某个字符串结束
  82. String.prototype.endWith = function (s) {
  83. var d = this.length - s.length;
  84. return (d >= 0 && this.lastIndexOf(s) == d)
  85. }
  86. //删除数组中存在重复的元素
  87. function getUnique(someArray) {
  88. tempArray = someArray.slice(0); //复制数组到临时数组
  89. for (var i = 0; i < tempArray.length; i++) {
  90. for (var j = i + 1; j < tempArray.length;) {
  91. if (tempArray[j] == tempArray[i])
  92. //后面的元素若和待比较的相同,则删除并计数;
  93. //删除后,后面的元素会自动提前,所以指针j不移动
  94. {
  95. tempArray.splice(j, 1);
  96. }
  97. else {
  98. j++;
  99. }
  100. //不同,则指针移动
  101. }
  102. }
  103. return tempArray;
  104. }
  105. //判断数组中是否存在重复的元素
  106. function confirmRepeat(someArray) {
  107. tempArray = someArray.slice(0); //复制数组到临时数组
  108. for (var i = 0; i < tempArray.length; i++) {
  109. for (var j = i + 1; j < tempArray.length;) {
  110. if (tempArray[j] == tempArray[i])
  111. //后面的元素若和待比较的相同,则删除并计数;
  112. //删除后,后面的元素会自动提前,所以指针j不移动
  113. {
  114. return true;
  115. }
  116. else {
  117. j++;
  118. }
  119. //不同,则指针移动
  120. }
  121. }
  122. return false;
  123. }
  124. //判断某个值是否在数组中
  125. Array.prototype.in_array = function (e) {
  126. for (i = 0; i < this.length; i++) {
  127. if (this[i] == e)
  128. return true;
  129. }
  130. return false;
  131. }
  132. //判断某个值在数组中的位置
  133. Array.prototype.indexOf = function (e) {
  134. for (i = 0; i < this.length; i++) {
  135. if (this[i] == e)
  136. return i;
  137. }
  138. return -1;
  139. }
  140. //转义html标签
  141. function HtmlEncode(text) {
  142. return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
  143. }
  144. //格式化日期 DateFormat('yyyy_MM_dd hh:mm:ss:SS 星期w 第q季度')
  145. function DateFormat(format, date) {
  146. if (!date) {
  147. date = new Date();
  148. }
  149. var Week = ['日', '一', '二', '三', '四', '五', '六'];
  150. var o = {
  151. "y+": date.getYear(), //year
  152. "M+": date.getMonth() + 1, //month
  153. "d+": date.getDate(), //day
  154. "h+": date.getHours(), //hour
  155. "H+": date.getHours(), //hour
  156. "m+": date.getMinutes(), //minute
  157. "s+": date.getSeconds(), //second
  158. "q+": Math.floor((date.getMonth() + 3) / 3), //quarter
  159. "S": date.getMilliseconds(), //millisecond
  160. "w": Week[date.getDay()]
  161. }
  162. if (/(y+)/.test(format)) {
  163. format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
  164. }
  165. for (var k in o) {
  166. if (new RegExp("(" + k + ")").test(format)) {
  167. format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
  168. }
  169. }
  170. return format;
  171. }
  172. //设置cookie值
  173. function setCookie(name, value, Hours) {
  174. var d = new Date();
  175. var offset = 8;
  176. var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
  177. var nd = utc + (3600000 * offset);
  178. var exp = new Date(nd);
  179. exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
  180. document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
  181. }
  182. //获取cookie值
  183. function getCookie(name) {
  184. var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
  185. if (arr != null) return unescape(arr[2]);
  186. return null
  187. }
  188. //加入收藏夹
  189. function AddFavorite(sURL, sTitle) {
  190. try {
  191. window.external.addFavorite(sURL, sTitle)
  192. } catch (e) {
  193. try {
  194. window.sidebar.addPanel(sTitle, sURL, "")
  195. } catch (e) {
  196. alert("加入收藏失败,请使用Ctrl+D进行添加")
  197. }
  198. }
  199. }
  200. //设为首页
  201. function setHomepage(homeurl) {
  202. if (document.all) {
  203. document.body.style.behavior = 'url(#default#homepage)';
  204. document.body.setHomePage(homeurl)
  205. } else if (window.sidebar) {
  206. if (window.netscape) {
  207. try {
  208. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
  209. } catch (e) {
  210. alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入about:config,然后将项 signed.applets.codebase_principal_support 值该为true");
  211. }
  212. }
  213. var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
  214. prefs.setCharPref('browser.startup.homepage', homeurl)
  215. }
  216. }
  217. //跨浏览器绑定事件
  218. function addEventSamp(obj, evt, fn) {
  219. if (!oTarget) { return; }
  220. if (obj.addEventListener) {
  221. obj.addEventListener(evt, fn, false);
  222. } else if (obj.attachEvent) {
  223. obj.attachEvent('on' + evt, fn);
  224. } else {
  225. oTarget["on" + sEvtType] = fn;
  226. }
  227. }
  228. //跨浏览器删除事件
  229. function delEvt(obj, evt, fn) {
  230. if (!obj) { return; }
  231. if (obj.addEventListener) {
  232. obj.addEventListener(evt, fn, false);
  233. } else if (oTarget.attachEvent) {
  234. obj.attachEvent("on" + evt, fn);
  235. } else {
  236. obj["on" + evt] = fn;
  237. }
  238. }
  239. //判断是否移动设备访问
  240. function isMobileUserAgent() {
  241. return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
  242. }
  243. //完美判断是否为网址
  244. function IsURL(strUrl) {
  245. var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
  246. if (regular.test(strUrl)) {
  247. return true;
  248. } else {
  249. return false;
  250. }
  251. }
  252. //获取页面高度
  253. function getPageHeight() {
  254. var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement;
  255. return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);
  256. }
  257. //获取页面宽度
  258. function getPageWidth() {
  259. var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement;
  260. return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);
  261. }
  262. //获取页面可视宽度
  263. function getPageViewWidth() {
  264. var d = document, a = d.compatMode == "BackCompat"
  265. ? d.body
  266. : d.documentElement;
  267. return a.clientWidth;
  268. }
  269. //获取页面可视高度
  270. function getPageViewHeight() {
  271. var d = document, a = d.compatMode == "BackCompat"
  272. ? d.body
  273. : d.documentElement;
  274. return a.clientHeight;
  275. }
  276. //获取页面scrollLeft
  277. function getPageScrollLeft() {
  278. var a = document;
  279. return a.documentElement.scrollLeft || a.body.scrollLeft;
  280. }
  281. //获取页面scrollTop
  282. function getPageScrollTop() {
  283. var a = document;
  284. return a.documentElement.scrollTop || a.body.scrollTop;
  285. }
  286. //获取窗体可见范围的宽与高
  287. function getViewSize() {
  288. var de = document.documentElement;
  289. var db = document.body;
  290. var viewW = de.clientWidth == 0 ? db.clientWidth : de.clientWidth;
  291. var viewH = de.clientHeight == 0 ? db.clientHeight : de.clientHeight;
  292. return Array(viewW, viewH);
  293. }
  294. //随机数时间戳
  295. function uniqueId() {
  296. var a = Math.random, b = parseInt;
  297. return Number(new Date()).toString() + b(10 * a()) + b(10 * a()) + b(10 * a());
  298. }
  299. //获取网页被卷去的位置
  300. function getScrollXY() {
  301. return document.body.scrollTop ? {
  302. x: document.body.scrollLeft,
  303. y: document.body.scrollTop
  304. } : {
  305. x: document.documentElement.scrollLeft,
  306. y: document.documentElement.scrollTop
  307. }
  308. }
  309. //匹配国内电话号码(0511-4405222 或 021-87888822)
  310. function istell(str) {
  311. var result = str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
  312. if (result == null) return false;
  313. return true;
  314. }
  315. //匹配身份证(15位或18位)
  316. function isidcard(str) {
  317. var result = str.match(/\d{15}|\d{18}/);
  318. if (result == null) return false;
  319. return true;
  320. }
  321. //移动电话
  322. function checkMobile(str) {
  323. if (!(/^1[3|5|8][0-9]\d{4,8}$/.test(str))) {
  324. return false;
  325. }
  326. return true;
  327. }
  328. // 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
  329. function isalphanumber(str) {
  330. var result = str.match(/^[a-zA-Z0-9]+$/);
  331. if (result == null) return false;
  332. return true;
  333. }
  334. // 判断输入是否是有效的电子邮件
  335. function isemail(str) {
  336. var result = str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
  337. if (result == null) return false;
  338. return true;
  339. }
  340. //金额大写转换函数 transform('123431233132.23')
  341. function transform(tranvalue) {
  342. try {
  343. var i = 1;
  344. var dw2 = new Array("", "万", "亿"); //大单位
  345. var dw1 = new Array("拾", "佰", "仟"); //小单位
  346. var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
  347. //以下是小写转换成大写显示在合计大写的文本框中
  348. //分离整数与小数
  349. var source = splits(tranvalue);
  350. var num = source[0];
  351. var dig = source[1];
  352. //转换整数部分
  353. var k1 = 0; //计小单位
  354. var k2 = 0; //计大单位
  355. var sum = 0;
  356. var str = "";
  357. var len = source[0].length; //整数的长度
  358. for (i = 1; i <= len; i++) {
  359. var n = source[0].charAt(len - i); //取得某个位数上的数字
  360. var bn = 0;
  361. if (len - i - 1 >= 0) {
  362. bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
  363. }
  364. sum = sum + Number(n);
  365. if (sum != 0) {
  366. str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
  367. if (n == '0') sum = 0;
  368. }
  369. if (len - i - 1 >= 0) { //在数字范围内
  370. if (k1 != 3) { //加小单位
  371. if (bn != 0) {
  372. str = dw1[k1].concat(str);
  373. }
  374. k1++;
  375. } else { //不加小单位,加大单位
  376. k1 = 0;
  377. var temp = str.charAt(0);
  378. if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
  379. str = str.substr(1, str.length - 1);
  380. str = dw2[k2].concat(str);
  381. sum = 0;
  382. }
  383. }
  384. if (k1 == 3) { //小单位到千则大单位进一
  385. k2++;
  386. }
  387. }
  388. //转换小数部分
  389. var strdig = "";
  390. if (dig != "") {
  391. var n = dig.charAt(0);
  392. if (n != 0) {
  393. strdig += dw[Number(n)] + "角"; //加数字
  394. }
  395. var n = dig.charAt(1);
  396. if (n != 0) {
  397. strdig += dw[Number(n)] + "分"; //加数字
  398. }
  399. }
  400. str += "元" + strdig;
  401. } catch (e) {
  402. return "0元";
  403. }
  404. return str;
  405. }
  406. //拆分整数与小数
  407. function splits(tranvalue) {
  408. var value = new Array('', '');
  409. temp = tranvalue.split(".");
  410. for (var i = 0; i < temp.length; i++) {
  411. value = temp;
  412. }
  413. return value;
  414. }
  415. //格式化数字
  416. function number_format(number, decimals, dec_point, thousands_sep) {
  417. /*
  418. * 参数说明:
  419. * number:要格式化的数字
  420. * decimals:保留几位小数
  421. * dec_point:小数点符号
  422. * thousands_sep:千分位符号
  423. * */
  424. number = (number + '').replace(/[^0-9+-Ee.]/g, '');
  425. var n = !isFinite(+number) ? 0 : +number,
  426. prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
  427. sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
  428. dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
  429. s = '',
  430. toFixedFix = function (n, prec) {
  431. var k = Math.pow(10, prec);
  432. return '' + Math.ceil(n * k) / k;
  433. };
  434. s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
  435. var re = /(-?\d+)(\d{3})/;
  436. while (re.test(s[0])) {
  437. s[0] = s[0].replace(re, "$1" + sep + "$2");
  438. }
  439. if ((s[1] || '').length < prec) {
  440. s[1] = s[1] || '';
  441. s[1] += new Array(prec - s[1].length + 1).join('0');
  442. }
  443. return s.join(dec);
  444. }

项目中常用js方法整理common.js的更多相关文章

  1. 常用js方法整理common.js

    项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...

  2. 常用js函数整理--common.js

    var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data: data, dataType: 'json ...

  3. VB的一些项目中常用的通用方法-一般用于验证类

    1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer Dim mychar mychar = ...

  4. ES6系列之项目中常用的新特性

    ES6系列之项目中常用的新特性 ES6常用特性 平时项目开发中灵活运用ES6+语法可以让开发者减少很多开发时间,提高工作效率.ES6版本提供了很多新的特性,接下来我列举项目中常用的ES6+的特性: l ...

  5. 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)

    记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...

  6. vue-cli+webpack在生成的项目中使用bootstrap方法(二)

    vue-cli+webpack在生成的项目中使用bootstrap方法(一)中,是通过手动下载bootstrap库,然后手动添加到src/assets中,显然是过程太多. 当然是可以更省力些,可以通过 ...

  7. 项目中常用的MySQL 优化

    本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我 ...

  8. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  9. C语言中常用计时方法总结

    转自:http://blog.csdn.net/fz_ywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:time_t ...

随机推荐

  1. Git单独checkout子目录

    http://schacon.github.io/git/git-read-tree.html#_sparse_checkout Existing Repository If you already ...

  2. java代理的深入浅出(一)-Proxy

    java代理的深入浅出(一)-Proxy 1.什么是代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事 ...

  3. Chapter 2 Open Book——13

    "People in this town," he muttered. "Dr. Cullen is a brilliant surgeon who could prob ...

  4. Go-file

    两个包具有文件操作的相关方法,一个是os,一个是syscall,其中os中的相关方法是对syscall相关方法的封装,推荐使用os中的相关方法.文件的打开文件的第一步操作实际上是创建,但是由于文件的打 ...

  5. 登录验证的js;JS验证邮箱 验证密码

    var auth_email = 0, auth_pwd = 0, auth_captcha = 0, url_ajax = "/protected/user_ajax.php"; ...

  6. Spring 与 mybatis整合---事务管理

    MyBatis与Spring整合前后事务管理有所区别 整合前:通过 session = sessionFactory.openSession(true); //或者是false 设置事务是否自动提交: ...

  7. Myeclipse 创建 Web Maven项目

    1.创建Web项目 添加Maven支持 2.pom.xml 报如下错误: 解决办法: pom.xml里面添加依赖: <dependency> <groupId>com.thou ...

  8. DISUBSTR - Distinct Substrings

    DISUBSTR - Distinct Substrings no tags  Given a string, we need to find the total number of its dist ...

  9. Java Concurrent Topics

    To prevent Memory Consistency Errors(MCEs), it is good practice to specify synchronized class specif ...

  10. 单元测试、自动化测试、接口测试过程中的Excel数据驱动(java实现)

    import java.io.FileInputStream;import java.io.InputStream;import java.util.HashMap;import java.util. ...