原生JavaScript技巧大收集(1~10)

本文提供了一系列原生JavaScript实现的功能函数,包括字符串长度截取、获取域名主机、清除空格、替换全部字符、转义及还原HTML标签、时间日期格式转换等,帮助开发者快速实现常见需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、原生JavaScript实现字符串长度截取

01function cutstr(str, len) {
02    var temp;
03    var icount = 0;
04    var patrn = /[^\x00-\xff]/;
05    var strre = "";
06    for (var i = 0; i < str.length; i++) {
07        if (icount < len - 1) {
08            temp = str.substr(i, 1);
09            if (patrn.exec(temp) == null) {
10                icount = icount + 1
11            } else {
12                icount = icount + 2
13            }
14            strre += temp
15        } else {
16            break
17        }
18    }
19    return strre + "..."
20}


2、原生JavaScript获取域名主机

01function getHost(url) {
02    var host = "null";
03    if(typeof url == "undefined"|| null == url) {
04        url = window.location.href;
05    }
06    var regex = /^\w+\:\/\/([^\/]*).*/;
07    var match = url.match(regex);
08    if(typeof match != "undefined" && null != match) {
09        host = match[1];
10    }
11    return host;
12}


3、原生JavaScript清除空格

1String.prototype.trim = function() {
2    var reExtraSpace = /^\s*(.*?)\s+$/;
3    return this.replace(reExtraSpace, "$1")
4}


4、原生JavaScript替换全部

1String.prototype.replaceAll = function(s1, s2) {
2    return this.replace(new RegExp(s1, "gm"), s2)
3}


5、原生JavaScript转义html标签

1function HtmlEncode(text) {
2    return text.replace(/&/g, '&amp').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
3}


6、原生JavaScript还原html标签

1function HtmlDecode(text) {
2    return text.replace(/&amp;/g, '&').replace(/&quot;/g, '\"').replace(/&lt;/g, '<').replace(/&gt;/g, '>')
3}


7、原生JavaScript时间日期格式转换

01Date.prototype.Format = function(formatStr) {
02    var str = formatStr;
03    var Week = ['日', '一', '二', '三', '四', '五', '六'];
04    str = str.replace(/yyyy|YYYY/, this.getFullYear());
05    str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
06    str = str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));
07    str = str.replace(/M/g, (this.getMonth() + 1));
08    str = str.replace(/w|W/g, Week[this.getDay()]);
09    str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
10    str = str.replace(/d|D/g, this.getDate());
11    str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
12    str = str.replace(/h|H/g, this.getHours());
13    str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
14    str = str.replace(/m/g, this.getMinutes());
15    str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
16    str = str.replace(/s|S/g, this.getSeconds());
17    return str
18}


8、原生JavaScript判断是否为数字类型

1function isDigit(value) {
2    var patrn = /^[0-9]*$/;
3    if (patrn.exec(value) == null || value == "") {
4        return false
5    } else {
6        return true
7    }
8}


9、原生JavaScript设置cookie值

1function setCookie(name, value, Hours) {
2    var d = new Date();
3    var offset = 8;
4    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
5    var nd = utc + (3600000 * offset);
6    var exp = new Date(nd);
7    exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
8    document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
9}


10、原生JavaScript获取cookie值

1function getCookie(name) {
2    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
3    if (arr != null) return unescape(arr[2]);
4    return null
5}

 

转载于:https://www.cnblogs.com/LoveOrHate/p/4310164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值