取整
1.取整 //保留整数部分 parseInt(3/2) // 1 2.向上取整 // 向上取整,有小数就整数部分加1 Math.ceil(3/2) // 2 3.四舍五入 // 四舍五入 Math.round(3/2) // 2 4.向下取整 // 向下取整,丢弃小数部分 Math.floor(3/2) // 1
取余
1.取余 console.log(7%4); // 3
1.取整 //保留整数部分 parseInt(3/2) // 1 2.向上取整 // 向上取整,有小数就整数部分加1 Math.ceil(3/2) // 2 3.四舍五入 // 四舍五入 Math.round(3/2) // 2 4.向下取整 // 向下取整,丢弃小数部分 Math.floor(3/2) // 1
1.取余 console.log(7%4); // 3
一个包解决你所有的JS问题,点击获取
String对象的方法
方法一: indexOf() (推荐)
var str = "123" console.log(str.indexOf("2") != -1); // true
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。
方法二:match()
var str = "123" var reg = RegExp(/3/); if(str.match(reg)){ //包含; }
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
方法三: search()
var str = "123" console.log(str.search("2") != -1); // true
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
RegExp对象的方法
方法四: test()
var str = "123" var reg = RegExp(/3/); console.log(reg.test(str) != -1); // true
test() 方法用于检索字符串中指定的值。返回 true 或 false。
方法五:exec()
var str = "123" var reg = RegExp(/3/); if(reg.exec(str)){ //包含; }
exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
如果大家想对JS有深入系统的学习,可以参阅 JavaScript核心技术开发解密 这本经典读物。
//校验是否全由数字组成
function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true }
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true }
//校验用户姓名:只能输入1-30个以字母开头的字串
function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true }
//校验密码:只能输入6-20个字母、数字、下划线
function isPasswd(s) { var patrn=/^(w){6,20}$/; if (!patrn.exec(s)) return false return true }
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
function isTel(s) { //var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/; var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true }
//校验手机号码:必须以数字开头,除数字外,可含有“-”
function isMobil(s) { var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true }
//校验邮政编码
function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true }
//校验搜索关键字
function isSearch(s)
{
var patrn=/^[^`~!@#$%^&*()+=|\][]{}:;',.<>/?]{1}[^`~!@$%^&()+=|\][]{}:;',.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}
//校验是否IP地址
function isIP(s) //by zergling
{
var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
"^\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\d+$" //整数
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\d+)(\.\d+)?$" //浮点数
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^\w+$" //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
"^[A-Za-z0-9_]*$"
// var str1 = str.replace(/[\'\"\\\/\b\f\n\r\t]/g, '');// 去掉转义字符
// var str2= str.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\L\<\>\?]/g, '');// 去掉特殊字符
// return str2;
var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/); return ( containSpecial.test(s) ); 判断是否含有 var filterRule= /[^0-9a-zA-Z_]/g; var judge= filterRule.test(str); //判断传进来的数据是否含有特殊字符。test函数返回匹配结 var rows=JSON.stringify(rows);////将json对象转换成json对符串 var rows=JSON.parse(rows);//将json字符串转换成json对象
的时候别人可能会故意刷我们的网站链接,在后面加上参数来访问网站,例如‘http://test.codelovers.cn/?_t=1539913651’我们想实现的效果是自动去掉后缀包含?部分,实现代码如下
if(top != self){
top.location=self.location;
}
else{
var url = location.search;
if(url){
var old_url = window.location.href;
var new_url = old_url.substring(0, old_url.indexOf('?'));
self.location = new_url;
}
}
大多数人很容易将CSS属性display和visibility混淆,它们看似没有什么不同,其实它们的差别却是很大的。
visibility属性用来确定元素是显示还是隐藏的,这用visibility=”visible|hidden”来表示(visible表示显示,hidden表示隐藏)。
当visibility被设置为”hidden”的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。例:
<script language="JavaScript"> function toggleVisibility(me){ if (me.style.visibility=="hidden"){ me.style.visibility="visible"; } else { me.style.visibility="hidden"; } } </script> <div onclick="toggleVisibility(this)" style="position:relative">
第一行文本将会触发”hidden”和”visible”属性,注意第二行的变化。</div> <div>因为visibility会保留元素的位置,所以虽然第一行看不见了但位置还在,第二行内容不会上下移动。</div>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
注意到,当元素被隐藏之后,就不能再接收到其它事件了,所以在第一段代码中,当其被设为”hidden”的时候,就不能再接收响应到事件了,因此也就无法通过鼠标点击第一段文本令其显示出来。
另一方面,display属性就有一点不同了。visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征。
当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<div>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<div>一样工作。
将display设置为inline,将使其行为和元素inline一样—即使它是普通的块元素如<div>,它也将会被组合成像<span>那样的输出流。
下面看我实例的代码和效果:
<script language="JavaScript"> function toggleDisplay(me){ if (me.style.display=="block"){ me.style.display="inline"; alert("文本现在是:'inline'."); } else { if (me.style.display=="inline"){ me.style.display="none"; alert("文本现在是:'none'. 3秒钟后自动重新显示。"); window.setTimeout("blueText.style.display='block';",3000,"JavaScript"); } else { me.style.display="block"; alert("文本现在是:'block'."); } } } </script> <div>在<span id="blueText" onclick="toggleDisplay(this)" style="color:blue;position:relative;cursor:hand;">蓝色</span>文字上点击来查看效果.</div>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填。(此时应用display: none;的元素相当于消失,而visibility: hidden;则只表示隐藏,位置还在。)
display 属性分别为block, inline, none 值及使用visibility: hidden;的情况调试示例:
<h1>display 属性分别为block, inline, none 值及使用visibility: hidden;的情况调试</h1> <P><SPAN id="oSpan" style="">This is a SPAN</SPAN> in a sentence.</P> <P> <input type=button value="Inline" onclick="oSpan.style.display='inline'"> <input type=button value="Block" onclick="oSpan.style.display='block'"> <input type=button value="None" onclick="oSpan.style.display='none'"> <input type=button value="Hidden" onclick="oSpan.style.visibility='hidden'"> <input type=button value="Visible" onclick="oSpan.style.visibility='visible'"> </P> <UL> <LI>将元素设为 block,会在该元素后换行。</LI> <LI>将元素设为 inline,会消除元素换行。</LI> <LI>将元素设为 none,隐藏该元素内容。</LI> </UL>
var date1 = new Date("2019-08-19"); var date2 = new Date("2019-08-19"); if (date1<date2) { layer.msg('初始同步日期请填写“2019-08-19”以后的日期', {time: 1500}); return false; }
function getFormatDate() { var date = new Date(); var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentDate = date.getFullYear() + "-" + month + "-" + strDate + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); return currentDate; }
//将时间戳转换成 yyyy-MM-dd HH:mm:ss
//inputTime 参数是毫秒级时间戳 formatDate(inputTime) { var date = new Date(inputTime); var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; var h = date.getHours(); h = h < 10 ? ('0' + h) : h; var minute = date.getMinutes(); var second = date.getSeconds(); minute = minute < 10 ? ('0' + minute) : minute; second = second < 10 ? ('0' + second) : second; return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second; },
一种:
<a href="javascript:if(confirm('确实要删除该内容吗?'))location='http://www.google.com'">弹出窗口</a>
二种:
<script language="JavaScript"> function delete_confirm(e) { if (event.srcElement.outerText == "删除") { event.returnValue = confirm("删除是不可恢复的,你确认要删除吗?"); } } document.onclick = delete_confirm; </script> <a href="Delete.aspx" onClick="delete_confirm">删除</a>
三种:
if(window.confirm('你确定要取消交易吗?')){
//alert("确定");
return true;
}else{
//alert("取消");
return false;
}
四种:
<!--调用方法--> <script language="JavaScript"> function delete_confirm() { event.returnValue = confirm("删除是不可恢复的,你确认要删除吗?"); } </script>
记录一下checkbox 的 checked 属性的获取办法,以备忘记:
假如你的一个HTML页中有这么一段代码:
<input name="chbRem" id="chbRem" type="checkbox" checked="checked">
那么如何通过JQuery获得chbRem的checked状态呢:
错误的写法如下:
alert( $("#chbRem").attr("checked") );
正确的获取方式应该是:
alert( $("#chbRem")[0].checked );
此时,会输出ture。
https://github.com/emn178/hi-base64
链接:https://pan.baidu.com/s/1qJt8gdBqcT3a7PodDUbPbQ
提取码:rpc6
下载后引入base64.js文件,在代码中使用base64.encode,base64.decode方法进行加密解密。