• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
敲小黑板
AS GOOD AS SHINE.
博客园    首页    新随笔    联系   管理    订阅  订阅
JS-实用方法

一、JS计算百分比

function GetPercent(num, total) {
/// <summary>
/// 求百分比
/// </summary>
/// <param name="num">当前数</param>
/// <param name="total">总数</param>
num = parseFloat(num);
total = parseFloat(total);
if (isNaN(num) || isNaN(total)) {
return "-";
}
return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00)+"%";
}

使用方法如下:

GetPercent(1,100);
结果:
1%;

 

二、Js中获取时间 new date()的用法

获取时间:

var myDate = new Date();//获取系统当前时间
 myDate.getYear(); //获取当前年份(2位)
 myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间

JS获取当前时间戳的方法

JavaScript 获取当前时间戳:
第一种方法:

var timestamp =Date.parse(new Date());

得到的结果:1280977330000 注意:这里得到的结果将后三位(毫秒)转换成了000显示,使用时可能会出现问题。例如动态添加页面元素id的时候,不建议使用。

第二种方法:

var timestamp =(new Date()).valueOf();

结果:1280977330748

第三种方法:

var timestamp=new Date().getTime();

结果:1280977330748

 

js中单独调用new Date(),例如document.write(new Date());

显示的结果是:Mar 31 10:10:43 UTC+0800 2012 这种格式的时间

 

但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数。

 

三、将"2018-08-24 12:12:12"重新调整日期字符串格式为8月24日 12:12

 

function timeReset(resCreateDate) {
let timeStr = '';
let timeArr = resCreateDate.replace(" ", ":").replace(/\:/g, "-").split("-"); console.log(timeArr);
if(timeArr[1]<10){
timeStr = "" + timeArr[1].split("")[1] + "月" + timeArr[2] + "日\t" + timeArr[3] + ":" + timeArr[4] + "";
}else{
timeStr = "" + timeArr[1] + "月" + timeArr[2] + "日\t" + timeArr[3] + ":" + timeArr[4] + "";
}
return timeStr;
}

console.log(timeReset('2018-08-24 12:12:12'));

 

 

 四、JS函数传递字符串参数(符号转义)

JS函数传递字符串参数,如果没有转义处理,在接收的时候无法正确的接收字符串。
(1)在双引号内

<a href="javascript:orderDetails(\''+compId+'\')">查看详情</a>
<a href="javascript:void(0)" onclick="orderDetails(\''+compId+'\')">查看详情</a>

(2)在单引号内

<a href='javascript:orderDetails(\""+orderId+"\",\""+compName+"\")'>查看详情</a>
<a href='javascript:void(0)' onclick='orderDetails(\""+compId+"\",\""+compName+"\")'>查看详情</a>

(3)拼接字符串时

let briefObj = 
' <button type="button" class="comp-detail-btn btn m-btn m-btn--gradient-from-primary m-btn--gradient-to-info"\n' +
' onclick="compDetailInfoModal(\''+compId+'\',\''+devCode+'\')">查看详情</button>';

$("#idCompInfo").append(briefObj);

如果参数为int类型,则不需要加引号和转义

 

五、批量替换js对象中的属性名

通过正则的方法进行过滤修改。

//高效将isCheck转换成checked

// 先将json对象data转为json字符串,再替换你要替换的属性名,最后再转为json对象

data = JSON.parse(JSON.stringify(data).replace(/isCheck/g,"checked"));

解释:1)JSON.stringify()把json对象转成json字符串;

          2)使用正则的replace()方法替换属性名;

          3)JSON.parse()把json字符串又转成json对象。

 

六、js 批量删除对象中某一属性及值

var a={"id":1,"name":"设备1"};

//添加属性
a.level=2;
console.log(a);
//结果:Object { id: 1, name: "设备1", level: 2 }
//修改属性
a.level="3";
//结果:Object { id: 1, name: "设备1", level: "3" }
//删除属性
delete a.level;
//结果:Object { id: 1, name: "设备1" }

 

七、JS获取url传过来的信息

/**
* 工具获取url传过来的信息
* @param name
* @returns {string}
* @constructor
*/
function GetQueryString(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}

 八、如何隐藏浏览器地址栏url参数

需求1:

用<A>标签跳转时候,经常会带参数地址?a=1这样的,但是我不想把a=1出现在地址栏的url上,应该怎么写代码才能不显示参数?

解答:

这个是不可以的。但是可以采用以下方法:
1、采用post提交模式,一般get提交模式会显示表单中提交的数据,比如账号密码等信息,但是采用post方式提交,URL中就会把这些信息进行进行加密的,此时通过地址栏就无法看到该参数了。
2、后台采用pathinfo模式的URL。一般PHP或者JSP都是支持的,此模式下,URL的传参将会被隐藏,地址栏里是按mvc模式进行URL访问的。

 

需求2:

每次点击页面的按钮时,使用window.location.href=“”时跳转页面地址栏都有参数信息。那么怎么样才能隐藏地址栏参数呢?

解答:

首先必须自己动态创建一个表单,将表单method改为post,提交这个表单就ok了。

 

// ===============JavaScript=====================
function postToPage() {
var f=document.createElement('form');
f.style.display='none';
f.action='XXX.do';
f.method='post';
f.innerHTML='<input type="hidden" name="mail" value="'+$("#email").val()+'"/>';
document.body.appendChild(f);
f.submit();
}

// ===============JQuery=====================
function postToPage() {
var form = $("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
//请求地址
form.attr("action","XXX.do");
var input1 = $("<input>");
input1.attr("type","hidden");
input1.attr("name","path");
input1.attr("value",uploadPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();
}
 【原文:https://blog.csdn.net/mibi8840/article/details/81488827 】

 

 九、url 参数值里的汉字乱码

curMenuName = decodeURI(decodeURI(乱码的参数));

【参考:https://www.cnblogs.com/longling2344/p/5476785.html】

 

posted on 2019-06-17 15:30  星星眼  阅读(493)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3