工具篇2

记录下日常开发有用到或封装的函数

Posted by Wason on September 15, 2019

工具篇 2

记录下日常开发有用到或封装的函数

7.限制输入框内容,有单引号和双引号的就置空

function contentLimit(value) {
    // return value.replace(/['\"‘’“”]/g,'');   // 置空
   return value;    // 返回原值
}

8.正则工具

①.获取地址栏中?后面的数据并以键值对形式返回

var str = "http://www.baidu.com?id=557131028857&name=ceshi&age=8";
var reg = /([^?=&]+)=([^?=&]+)/g;
var obj = {};
str.replace(reg, function ($0, $1, $2) {
    obj[$1] = $2;
});
console.log(obj); // {id: "557131028857", name: "ceshi", age: "8”}

②.去掉HTML标签

var str="<div id='div1' class='aa'>皇帝被废,太后痛哭流涕,</div><p>皇室威严扫地,群臣无不悲愤。</p>";
var reg = /<[^<>]+>/g;
str = str.replace(reg,"");
console.log(str);//皇帝被废,太后痛哭流涕,皇室威严扫地,群臣无不悲愤。

③.大写数字替换小写数字

var str = "38576";
var a = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];
str = str.replace(/\d/g, function () {
    return a[arguments[0]];
});
console.log(str);//叁捌伍柒陆
(arguments是当前函数的内置属性,指代当前匹配的参数伪数组。arguments[0]就是当前匹配的字符串。)

④利用正则的具名组功能 更改格式

let re=/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u
'2015-01-02'.replace(re, '$<day>/$<month>/$<year>’)
获得:"02/01/2015”

⑤去掉JSON字符串中的双引号和大括号(第二个参数’ ‘中间保留空格,则显示出的内容会保留空格,ps: /[ ]/ 最外层的中括号要保留)

JSON.stringify(item2.processinfo).replace(/["\{\}]/g, '')

9.解决登录回退问题,使得退回首页后点击浏览器的上一步操作不会再进入系统

window.location.replace('/')
JS进行页面跳转的方法如下
function toBooks() {
    // alert("跳转到图书列表");
    //在原有窗口打开
    window.location.href = "http://www.baidu.com";
    //打开新的窗口
    window.open("http://www.baidu.com");
}

10.用于将字符串保存为文本文件

function fakeClick (obj) {
  var ev = document.createEvent('MouseEvents')
  ev.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
  obj.dispatchEvent(ev)
}
function exportRaw (name, data) {
  var urlObject = window.URL || window.webkitURL || window
  var exportBlob = new Blob([data])
  var savelink = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')
  savelink.href = urlObject.createObjectURL(exportBlob)
  savelink.download = name
  fakeClick(savelink)
}

11.自定义时间格式并返回

Date.prototype.getFormatDate = function(format){
    var o = {
        "M+" : this.getMonth()+1, //month
        "d+" : this.getDate(), //day
        "h+" : this.getHours(), //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth()+3)/3), //quarter
        "S" : this.getMilliseconds() //millisecond
    }
    if(/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    for(var k in o) {
        if(new RegExp("("+ k +")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
        }
    }
    return format;
};

调用方式,如要获取该格式”yyyy-MM-dd”的日期,就可: getFormatDate(“yyyy-MM-dd”)

还可以采用下面方法获取指定格式的今天$.datepicker.formatDate("yy_mm_dd", new Date());案例:
var fmtDate = '';
fmtDate = $.datepicker.formatDate("yy_mm_dd", new Date());
console.log(fmtDate)
结果是
2019_12_17

To be continued