抽空把项目中常用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. 免费开源的boostrap模板

    百度查不到,奶奶的,百度好多国外技术类文章的都查不到 https://colorlib.com/wp/free-html5-admin-dashboard-templates/ 有没有FQ软件介绍呀?

  2. java编写简单的累加程序

    编程思路:1.建立类包demo: 2.在类包中建立CommanParameter类: 3.利用for循环通过强制类型转换将在后台中输入的String类型的字符转换为整型并进进累加操作: package ...

  3. Cross compile openwrt

    在Centos7上交叉编译生成OpenWrt固件 安装ss-* 获取最新的ss, 当前是 wget https://github.com/shadowsocks/shadowsocks-libev/a ...

  4. selenium 百度登陆

    using System;using OpenQA.Selenium;using OpenQA.Selenium.Firefox;//引用命名空间using System.IO; using Syst ...

  5. Centos sudo添加用户

    $ su - # vi /etc/sudoers 在root ALL=(ALL) ALL下 添加 username ALL=(ALL) ALL 输入wq!强制保存.

  6. JavaScript高级程序设计:第十三章

    第十三章 一.理解事件流 事件流描述的是从页面中接收事件的顺序. 1.事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点.以下面的HTML页面为例: ...

  7. hdu_2111_Saving HDU(贪心)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2111 题意:给你n个物品的单位体积价值和体积,求装满容量v的背包的最大价值. 题解:乍一看还以为是背包 ...

  8. HDU2629:Identity Card

    Problem Description Do you own an ID card?You must have a identity card number in your family's Hous ...

  9. sysbench使用教程【转载】

    水晶命匣 2016-08-16 20:02 一.环境描述 此次使用的虚拟机环境如下所示: CPU:双核 2.4GHz 内存:4 GB 硬盘:120 GB IP:192.168.21.129 操作系统: ...

  10. 使用 Eclipse Memory Analyzer 进行简单内存泄漏分析

    Java 内存泄露的根本原因: 保存了不可能再被访问的变量类型的引用.因此我们的目的就是要找出这样的引用. 1.测试代码: public class MainActivity extends Acti ...