网站地图 | RSS订阅 凌陈亮博客 - 专业上海SEO上海SEO优化,分享网站优化知识,同时提供上海SEO服务。
你的位置:首页 » Javascript
前端脚本

JS实现各种进制间的互相转换

JS实现各种进制间的互相转换
<script language="javascript" type="text/javascript">
function jinzhi_chg(){
	var num=document.getElementById("in").value;
	var type=document.getElementById("type");
	var tynum,to;
	for(var i=0;i<type.length;i++){ 
		if(type[i].selected)
		tynum=parseInt(type[i].value);
	}
	switch(tynum){
		case(1):to=parseInt(num).toString(2);break;
		case(2):to=parseInt(num).toString(8);break;
		case(3):to=parseInt(num).toString(16);break;
		case(4):to=parseInt(num,2);break;
		case(5):to=parseInt(num,8);break;
		case(6):to=parseInt(num,16);break;
		case(7):to=parseInt(num,2).toString(8);break; 
		case(8):to=parseInt(num,8).toString(2);break; 
		case(9):to=parseInt(num,2).toString(16);break; 
		case(10):to=parseInt(num,16).toString(2);break; 
		case(11):to=parseInt(num,8).toString(16);break; 
		case(12):to=parseInt(num,16).toString(8);break; 
	}
	document.getElementById("out").value=to;
}
</script>
<select name="type" id="type">
    <option value="1">十进制转二进制</option>
    <option value="2">十进制转八进制</option>
    <option value="3">十进制转十六进制</option>
    <option value="4">二进制转十进制</option>
    <option value="5">八进制转十进制</option>
    <option value="6">十六进制转十进制</option>
    <option value="7">二进制转八进制</option>
    <option value="8">八进制转二进制</option>
    <option value="9">二进制转十六进制</option>
    <option value="10">十六进制转二进制</option>
    <option value="11">八进制转十六进制</option>
    <option value="12">十六进制转八进制</option>
</select>
输入值:<input type="text" id="in" />
输出值:<input type="text" id="out" disabled="disabled" />
<input type="button" value="开始转换" onclick="jinzhi_chg()" />


发布时间:2016年11月24日 | 评论:3 | 浏览: | 标签:Javascript  JS教程  

前端脚本

JS获取指定A标签的链接地址url的顶级域名和当前域名

JS获取指定A标签的链接地址url的顶级域名和当前域名

获取指定的A标签href属性的值,提取URL中的顶级域名或当前域名。具体代码如下:

<a id="a1" href="http://www.lingchenliang.com/tags-189.html" target="_blank">JS特效</a>
<script language="javascript" type="text/javascript">
alert(getdomain(1,'a1')); //弹窗输出域名,此处为获取顶级域名
function getdomain(typ,id){ //参数:类型(0:当前域名,1:顶级域名),链接对象ID
	var url=window.document.getElementById(id).href; //获取链接
	if(typ==0){ //获取当前域名,如:www.lingchenliang.com
		var a = document.createElement('a');
		a.href = url;
		url=a.hostname;
	}else{ //获取顶级域名,如:lingchenliang.com
		//使用正则表达式
		url=url.replace(/.+[\.\/]([A-z]+\.[A-z]+)\/[^\/].+/,"$1");
	}
	return url; //返回域名值
}
</script>


发布时间:2016年9月20日 | 评论:0 | 浏览: | 标签:Javascript  JS特效  

前端脚本

JS获取三种CSS样式的方法

JS获取三种CSS样式的方法

一、获取元素的行内样式

var obj = document.getElementById("test");
alert(obj.height + "\n" + obj.width);     // 200px 200px typeof=string只是将style属性中的值显示出来

二、获取计算后的样式

发布时间:2016年9月20日 | 评论:0 | 浏览: | 标签:Javascript  JS特效  

前端脚本

JS格式化手机号码和400电话数字格式

JS格式化手机号码和400电话数字格式

可以格式化为任意位数分隔的格式规范,间隔符只能为-英文减号或 英文空格。

<script language="javascript">
//函数功能:格式化手机号码和400电话格式
//参数:要格式化的字符对象ID,存放新值的对象ID,字符串格式规则(如3-4-4、3 3 4)
//制作:凌陈亮(QQ:57404811)
function formatmobile(id,id2,str){
	var num=trim(window.document.getElementById(id).value); //获取号码并去左右空格
	var renum=""; //函数返回对象
	var arr=new Array();
	var i,m=0,n;
	if(str.indexOf('-')>-1){
		arr=str.split("-");
		for(i=0; i<arr.length; i++){
			n=m+Number(arr[i]);
			renum+=num.substring(m,n);
			if(i<arr.length-1) renum+="-";
			m=n;
		}
	}else{
		arr=str.split(" ");
		for(i=0; i<arr.length; i++){
			n=m+Number(arr[i]);
			renum+=num.substring(m,n);
			if(i<arr.length-1) renum+=" ";
			m=n;
		}
	}
	window.document.getElementById(id2).innerHTML=renum;
}
function trim(str){ //删除左右两端的空格
	return str.replace(/(^\s*)|(\s*$)/g, ""); //过滤首尾空格为空
}
</script>
手机号:<input type="text" name="mobile" id="mobile" value="13023105435" />
格式化后:<span id="fmm"></span>
<p>
<input type="button" value="3-4-4格式" onClick="javascript:formatmobile('mobile','fmm','3-4-4');" />
<input type="button" value="3 4 4格式" onClick="javascript:formatmobile('mobile','fmm','3 4 4');" />
</p>
400电话:<input type="text" name="400tel" id="400tel" value="4008888888" />
格式化后:<span id="fmm2"></span>
<p>
<input type="button" value="3-3-4格式" onClick="javascript:formatmobile('400tel','fmm2','3-3-4');" />
<input type="button" value="3 3 4格式" onClick="javascript:formatmobile('400tel','fmm2','3 3 4');" />
<input type="button" value="3-4-3格式" onClick="javascript:formatmobile('400tel','fmm2','3-4-3');" />
<input type="button" value="3-5-2格式" onClick="javascript:formatmobile('400tel','fmm2','3-5-2');" />
<input type="button" value="3-2-5格式" onClick="javascript:formatmobile('400tel','fmm2','3-2-5');" />
</p>

发布时间:2016年9月19日 | 评论:0 | 浏览: | 标签:Javascript  格式化  获取字符串  

前端脚本

JS删除头尾两端空格

JS删除头尾两端空格

去除字符串左右两边的空格,在vbscript里面可以使用 trim函数,但在js中却没有这个内置方法,需要自己写代码。下面的实现方法用到了正则表达式。

第一种:写成类的方法

<script language="javascript" type="text/javascript">
String.prototype.trim=function(){ //过滤首尾空格
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
</script>

调用方式:

发布时间:2016年9月19日 | 评论:0 | 浏览: | 标签:Javascript  格式化  获取字符串  

前端脚本

JS求N个数字的最大公约数和最小公倍数

JS求N个数字的最大公约数和最小公倍数
<script language="javascript">
//函数功能:求N个数字的最大公约数和最小公倍数
//参数:数字集合(间隔符使用英文逗号, 如:16,24)
//调用方式:参照下方求两位数字和三位数字的最大公约数和最小公倍数案例
//制作:凌陈亮(QQ:57404811)
function getGCDLCM(str){
	var arr=eval("[" + str + "]");
	var max=Math.max.apply(null, arr);
	var min=Math.min.apply(null, arr);
	var GCDLCM=new Object(); //函数返回对象
	GCDLCM.str=str; //输入的数字集合
	GCDLCM.num=arr.length; //数字总个数
	var i,j,ifstr="";
	for(j=0;j<arr.length;j++){
		ifstr+=arr[j] + "<1";
		if(j<arr.length-1) ifstr+="||"
	}
	if(eval(ifstr)){
		GCDLCM.GCD=-1; //最大公约数
		GCDLCM.LCM=-1; //最小公倍数
		return GCDLCM;
	}
	//求最大公约数
	for(i=min;i>0;i--){
		ifstr="";
		for(j=0;j<arr.length;j++){
			ifstr+=arr[j] + "%" + i + "==0";
			if(j<arr.length-1) ifstr+="&&"
		}
		if(eval(ifstr)){
			GCDLCM.GCD=i; //最大公约数
			break;
		}
	}
	//求最小公倍数
	var n=1;
	for(j=0;j<arr.length;j++){ n=n*arr[j]; }
	for(i=max;i<=n;i++){
		ifstr="";
		for(j=0;j<arr.length;j++){
			ifstr+=i + "%" + arr[j] + "==0";
			if(j<arr.length-1) ifstr+="&&"
		}
		if(eval(ifstr)){
			GCDLCM.LCM=i; //最小公倍数
			break;
		}
	}
	return GCDLCM;
}
//例1:求两个数的最大公约数和最小公倍数
var result=getGCDLCM("16,24");
window.document.write("<p>您要查最大公约数和最小公倍数的数字为:" + result.str + "</p>");
window.document.write("<p>数字个数为:" + result.num + " 个</p>");
window.document.write("<p>最大公约数为:" + result.GCD + "</p>");
window.document.write("<p>最小公倍数为:" + result.LCM + "</p>");
//例2:求三个数的最大公约数和最小公倍数
var result=getGCDLCM("16,24,96");
window.document.write("<p>您要查最大公约数和最小公倍数的数字为:" + result.str + "</p>");
window.document.write("<p>数字个数为:" + result.num + " 个</p>");
window.document.write("<p>最大公约数为:" + result.GCD + "</p>");
window.document.write("<p>最小公倍数为:" + result.LCM + "</p>");
</script>


发布时间:2016年9月18日 | 评论:0 | 浏览: | 标签:Javascript  算法  

前端脚本

JS输出1到100间的奇数和偶数

JS输出1到100间的奇数和偶数
<script type="text/javascript">
jishu();
function jishu(){ //求奇数
	var str="",n=0;
    for(var i=1; i<=100; i++){
		if(i%2!=0){
			str=str + i + ","; //将奇数连到一个字符串中
			n++; //奇数个数+1
		}
    }
    window.document.write("<p>1-100间的奇数(单数)总数为:" + n + " 个</p>");
    window.document.write("<p>1-100间的奇数(单数)分别为:" + str.substr(0,str.length-1) +"</p>");
}
oushu();
function oushu(){ //求偶数
	var str="",n=0;
    for(var i=1; i<=100; i++){
		if(i%2==0){
			str=str + i + ","; //将偶数连到一个字符串中
			n++; //偶数个数+1
		}
    }
    window.document.write("<p>1-100间的偶数(双数)总数为:" + n + " 个</p>");
    window.document.write("<p>1-100间的偶数(双数)分别为:" + str.substr(0,str.length-1) +"</p>");
}
jioushu(100); //输出1到100间的奇偶数
function jioushu(n){  //求偶奇数
	var str1="",str2="",n1=0,n2=0;
    for(var i=1; i<=n; i++){
		if(i%2!=0){
			str1=str1 + i + ","; //将奇数连到一个字符串中
			n1++; //奇数个数+1
		}else{
			str2=str2 + i + ","; //将偶数连到一个字符串中
			n2++; //偶数个数+1
		}
    }
    window.document.write("<p>1-100间的奇数(单数)总数为:" + n1 + " 个</p>");
    window.document.write("<p>1-100间的奇数(单数)分别为:" + str1.substr(0,str1.length-1) +"</p>");
    window.document.write("<p>1-100间的偶数(双数)总数为:" + n2 + " 个</p>");
    window.document.write("<p>1-100间的偶数(双数)分别为:" + str2.substr(0,str2.length-1) +"</p>");
}
</script>

发布时间:2016年9月18日 | 评论:0 | 浏览: | 标签:Javascript  算法  

前端脚本

JS输出1到100间的所有合数

JS输出1到100间的所有合数
<script type="text/javascript">
heshu();
function heshu(){
    var str="",n=0;
    for(var i=1; i<=100; i++){
        var m=0; //非合数
        for(var j=2; j<i; j++){
            if(i%j==0){
                m=1; //合数
                break;
            }
        }
        if(m==1 && i!=2){
            str=str + i + ",";
            n++; //合数个数+1
        }
    }
    window.document.write("<p>1-100间的合数总数为:" + n + " 个</p>");
    window.document.write("<p>1-100间的合数分别为:" + str.substr(0,str.length-1) +"</p>");
}
</script>


发布时间:2016年9月18日 | 评论:0 | 浏览: | 标签:Javascript  算法  

前端脚本

JS判断日期时间格式是否有效

JS判断日期时间格式是否有效

史上最完整最精确的验证日期时间格式正则表达式:

/^\d{4}-((0?[1-9])|(1[0-2]))-((0?[1-9])|([12]\d)|(3[01])) (([01]?\d)|(2[0-3])):[0-5]\d:[0-5]\d$/

匹配合法格式为:yyyy-(m)m-(d)d (h)h:mm:ss
-:日期分隔符,减号(英文半角减号)
 :日期与时间中间的分隔符,空格(英文半角空格)
::时间分隔符,冒号(英文半角冒号)
yyyy:年份,必须4位数字
(m)m:月份,1-2位数字,如:9、09,最大只能为12,若为00、或大于12则不符合规则
(d)d:日,1-2位数字,如:9、09,最大只能为31,若为00、或大于31则不符合规则
(h)h:时,1-2位数字,如:9、09、00,最大只能为23,若大于23则不符合规则
mm:分,必须2位数字,如:09、00,最大只能为59,若大于59则不符合规则
ss:秒,必须2位数字,如:09、00,最大只能为59,若大于59则不符合规则

发布时间:2016年9月9日 | 评论:0 | 浏览: | 标签:Javascript  表单验证  字符串验证  日期时间  

前端脚本

JS飘浮广告代码(兼容多浏览器)

JS飘浮广告代码(兼容多浏览器)

此JS飘浮广告特效代码可以飘浮DIV层,图层中可放图片、文字等任何HTML内容。满屏到处移动着跑的飘动DIV广告特效。

此浮动代码由本人使用纯原生JS制作,未采用JQUERY。代码规范标准,使用HTML4 XHTML头部标准或HTML5头部都不影响JS的正常运行。

注:飘浮时只在浏览器窗口尺寸(即窗口可见区域大小)里飘动,不受滚动条长短影响。

发布时间:2016年9月7日 | 评论:0 | 浏览: | 标签:Javascript  JS特效  JS控制DIV  浮动  

前端脚本

JS确认对话框confirm()用法总结(常用于弹出确定、取消删除)

JS确认对话框confirm()用法总结(常用于弹出确定、取消删除)

confirm() 方法

定义和用法
confirm() 方法用于显示一个带有指定消息和 OK 及取消按钮的对话框。
语法

confirm(message)

参数  描述
message 要在 window 上弹出的对话框中显示的纯文本,即提示信息(而非 HTML 文本)
说明
如果用户点击确定按钮,则 confirm() 返回 true。如果点击取消按钮,则 confirm() 返回 false。
在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 confirm() 时,将暂停对 JavaScript 代码的执行,在用户作出响应之前,不会执行下一条语句。
提示:对话框按钮的文字是不可改变的,因此请小心地编写问题或消息,使它适合用确认和取消来回答。

发布时间:2016年9月1日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  JS特效  

前端脚本

JS实现组合算法总结

JS实现组合算法总结

算法一:循环,一组组合需要几个元素就用几个for(比较笨拙的方法)

示例中是从6个元素中取4个元素进行组合,并显示组合种数和组合列表。

<script type="text/javascript">  
var str="01,02,03,04,05,06";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len-3;i++){
	for(var j=i+1;j<len-2;j++){
		for(var k=j+1;k<len-1;k++){
			for(var l=k+1;l<len;l++){
				newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]);
			}
		}
	}
}
var len2=newArray.length;
document.write("组合总个数为:" + len2 + "<br />");
for(i=0;i<newArray.length;i++){
	document.write(newArray[i] + "<br />");
}
</script>

算法二:可自己设置元素库以及取N个元素进行组合。

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  

前端脚本

JS从M个元素中取N个排列算法(可重复元素)

JS从M个元素中取N个排列算法(可重复元素)

JS排列算法(可重复元素)示例:从4个元素中取3个进行排列,并显示共有多少种排列方式

<script type="text/javascript">  
var str="01,02,03,04";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len;i++){
	for(var j=0;j<len;j++){
		for(var k=0;k<len;k++){
			newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]);
		}
	}
}
var len2=newArray.length;
document.write("排列方式种类有:" + len2 + " 种<br />");
for(i=0;i<newArray.length;i++){
	document.write(newArray[i] + "<br />");
}
</script>

以上代码采用FOR循环方式,一组排列需要几个元素就用几个for

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  

前端脚本

JS全排列的7种算法总结(不重复元素)

JS全排列的7种算法总结(不重复元素)

全排列是一种时间复杂度为:O(n!)的算法。所有算法均使用JavaScript编写,可直接运行。

算法一:循环,一组排列需要几个元素就用几个for(比较笨拙的方法)

<script type="text/javascript">  
var str="01,02,03,04";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len;i++){
	for(var j=0;j<len;j++){
		if(j!=i){
		for(var k=0;k<len;k++){
			if(k!=i && k!=j){
			for(var l=0;l<len;l++){
				if(l!=i && l!=j && l!=k){
				newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]);
				}
			}
			}
		}
		}
	}
}
var len2=newArray.length;
document.write("排列方式种类有:" + len2 + " 种<br />");
for(i=0;i<len2;i++){
	document.write(newArray[i] + "<br />");
}
</script>

算法二:交换算法(递归)

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  JS递归函数  

«12345»