首页 > 编程 > JavaScript > 正文

javascript常用函数(1)

2019-11-20 11:20:44
字体:
来源:转载
供稿:网友

文章主要内容列表:

1、  调整图片大小,不走形(FF IE 兼容)/ 剪切图片(overflow:hidden)
2、  控制textarea区域文字数量
3、  点击显示新窗口
4、  input框自动随内容自动变长
5、  添加收藏夹
6、  设置首页
7、  Jquery + Ajax 判断用户是否存在
8、  判断email格式是否正确
9、  综合判断用户名(长度,英文字段等)
10、新闻滚动
11、 只允许输入正整数 (shopping cart 使用) 或者 正数 (正整数和正小数)
12、 转换字符串为数字
13、 判断文件格式(获得文件后缀)
14、 截取字符串
15、分割字符串

主要内容 :
1、 调整图片大小,不走形(FF IE 兼容)

// 用法 <img src="this_image_path.jpg" onload="DrawImage(this,450,450);" />  function DrawImage(ImgD,FitWidth,FitHeight){  var image=new Image();  image.src=ImgD.src;  if(image.width>0 && image.height>0){   if(image.width/image.height>= FitWidth/FitHeight){   if(image.width>FitWidth){    ImgD.width=FitWidth;    ImgD.height=(image.height*FitWidth)/image.width;   }else{    ImgD.width=image.width;    ImgD.height=image.height;   }   } else{   if(image.height>FitHeight){    ImgD.height=FitHeight;    ImgD.width=(image.width*FitHeight)/image.height;   }else{    ImgD.width=image.width;    ImgD.height=image.height;   }   }  }  } 

通过 overflow:hidden进行剪切:

function clipImage(o, w, h){  var img = new Image();  img.src = o.src;  if(img.width >0 && img.height>0)  {  if(img.width/img.height >= w/h)  {   if(img.width > w)   {    o.width = (img.width*h)/img.height;   o.height = h;   //o.setAttribute("style", "marginLeft:-" + ((o.width-w)/2).toString() + "px");   $(o).css("margin-left", "-"+((o.width-w)/2).toString() + "px");   }   else   {   o.width = img.width;   o.height = img.height;   }   }  else  {   if(img.height > h)   {   o.height = (img.height*w)/img.width;   o.width = w;   //o.setAttribute("style", "margin-top:-" + ((o.height-h)/2).toString() + "px");   //$(o).css("style", "margin-top:-" + ((o.height-h)/2).toString() + "px");   $(o).css("margin-top", "-"+((o.height-h)/2).toString() + "px");  }   else   {   o.width = img.width;   o.height = img.height;   }   }  } } 

实例:

<style type="text/css">  ul{list-style:none;}  ul li{float:left;padding:1px;border:#ccc 1px solid;width:120px;height:120px;overflow:hidden;text-align:center;over-flow:hidden;} </style> <ul>  <li><img src="1.jpg" onload="DrawImage(this,120,120);" /></li>  <li><img src="2.jpg" onload="clipImage(this,120,120);" /></li> </ul> 

2、控制textarea区域文字数量

<script> /**  * Calculate how many characters remain in a textarea (jQuery)  * @param string textarea  * @param int maxLength  * @param string div  */ function charsRemain(textarea, maxLength, div) {  var currentLength = $(textarea).val().length;   var charsLeft = maxLength - currentLength;  if (charsLeft < 0) { charsLeft = 0; }   $("#"+ div +"_charsRemain").html(charsLeft);   if (currentLength > maxLength) {  var fullText = $(textarea).val().substring(0, maxLength);  $(textarea).val(fullText);  } }  /**  * Calculate how many characters remain in a textarea (javascript)  * @param string textarea  * @param int maxLength  * @param string div  */ function charsRemain(textarea, maxLength, div) {  var currentLength = textarea.value.length;   var charsLeft = maxLength - currentLength;  if (charsLeft < 0) { charsLeft = 0; }   document.getElementById(div +"_charsRemain").innerHTML = charsLeft;   if (currentLength > maxLength) {  var fullText = textarea.value.substring(0, maxLength);  textarea.value = fullText;  } } </script>  <textarea rows="5" cols="15" onkeyup="charsRemain(this, 250, 'textarea');"></textarea>  <span id="textarea_charsRemain">250</span> characters remaining 

3、点击显示新窗口

//弹窗 function g_OpenWindow(pageURL, innerWidth, innerHeight) {  var ScreenWidth = screen.availWidth  var ScreenHeight = screen.availHeight  var StartX = (ScreenWidth - innerWidth) / 2  var StartY = (ScreenHeight - innerHeight) / 2  var wins = window.open(pageURL, 'OpenWin', 'left='+ StartX + ', top='+ StartY + ', Width=' + innerWidth +', height=' + innerHeight + ', resizable=yes, scrollbars=yes, status=no, toolbar=no, menubar=no, location=no')  wins.focus(); } 

Java代码 :

<script language="JavaScript">  // 自动弹出窗口  var whatsNew = open('','_blank','top=50,left=50,width=200,height=300,' + 'menubar=no,toolbar=no,directories=no,location=no,' + 'status=no,resizable=no,scrollbars=yes');  whatsNew.document.write('<center><b>news</b>< /center>');  whatsNew.document.write('<p>this is a test');  whatsNew.document.write('<p>deos address');  whatsNew.document.write('<p align="right">' + '<a href="javascript:self.close()">Close</a>');  whatsNew.document.close(); </script> 

不幸的是,很多浏览器会屏蔽弹出窗口,你需要手动允许后方可看到!下面是强制弹出窗口,原理就是创建一个form,通过post打开。

<script language="javascript">  function ForceWindow (){  this.r = document.documentElement;  this.f = document.createElement("FORM");  this.f.target = "_blank";  this.f.method = "post";  this.r.insertBefore(this.f, this.r.childNodes[0]); //XML DOM : insertBefore() 方法可在已有的子节点前插入一个新的子节点。 insertBefore(newchild,refchild)  }   ForceWindow.prototype.pop = function (sUrl){  this.f.action = sUrl;  this.f.submit();  }   window.force = new ForceWindow(); </script>  <body onLoad="window.force.pop('http://deographics.com/')">  <div> this is a test ! we will open the deographics's website~~  </div> </body> 

当然还有更好的办法就是

<script>  function openWin(){  window.showModalDialog(url,window, "help:no;scroll:no;resizable:no;status:0;dialogWidth:420px;dialogHeight:200px;center:yes");  } </script> 

 4、input框自动随内容自动变长

// input auto length  // <input name="words" size="2" maxlength="100" onkeyup="checkLength(this)"/><span id="char">0</span>   function checkLength(which) {  var maxchar=100;  //var oTextCount = document.getElementById("char");  iCount = which.value.replace(/[^/u0000-/u00ff]/g,"aa").length;  if(iCount<=maxchar){   //oTextCount.innerHTML = "<font color=#FF0000>"+ iCount+"</font>";   which.style.border = '1px dotted #FF0000';   which.size=iCount+2;  }else{   alert('Please input letter less than '+ maxchar);  }  } 

5、添加收藏夹

// addfavorite  function addfavorite(){  if (document.all){   window.external.addFavorite('http://deographics.com/','deographics');  }else if (window.sidebar){   window.sidebar.addPanel('deographics', 'http://deographics.com/', "");  }  } 

 6、设置首页

// setHomepage  function setHomepage(){  if(document.all){   document.body.style.behavior = 'url(#default#homepage)';   document.body.setHomePage('http://deographics.com/');  }else if(window.sidebar){   if(window.netscape){   try{    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");   }catch(e){    alert(" The operation was refused by browser,if you want to enable this feature, please enter in the address column 'about:config', then, change 'signed.applets.codebase_principal_support' to 'true' ");   }   }   var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);   prefs.setCharPref('browser.startup.homepage','http://deographics.com/');  }  }

7、Jquery + Ajax 判断用户是否存在

// 检测 用户名是否存在 $("#username").blur(function(){  var name = $(this).val(); var table = $(this).attr('title');  if(name!=''){  var dataString = 'username='+ name + '&table=' + table;  $.post("operate.php",dataString,function(data){ //alert(data);   if(data==0){   alert('This username already exist !'); $(this).val('').focus(); return false;   }  });  } }); 

或者

var datastring = 'id=' + $id + '&pos=' + $pos; $.ajax({  type: "POST",  url: url,  data: dataString,  beforeSend: function(){},  error: function(){alert('Send Error !');},  success: function(data) {  // do something  }  }); 

8、判断email格式是否正确

function chekemail(temail){  var pattern = /^[/w]{1}[/w/./-_]*@[/w]{1}[/w/-_/.]*/.[/w]{2,4}$/i;  if(pattern.test(temail)){return true;}else{return false;} } 

 9、综合判断用户名(长度,英文字段等)

// 实例  var username = $('#username');  var backValue = VerifyInput('username');   if(backValue == 'length'){  alert("Username is make up of 3 - 15 characters!");   username.focus();   return false;  }else if(backValue == 'first'){  alert("the First character must be letter or number !");   username.focus();   return false;  }else if(backValue == 'back'){  alert("Username only contains letter number or '_' ");   username.focus();   return false;  } // 判断  function VerifyInput(user){  var strUserID = $('#'+user).val();  if (strUserID.length < 3 || strUserID.length > 15){   return 'length';  }else{   for (nIndex=0; nIndex<strUserID.length; nIndex++){   cCheck = strUserID.charAt(nIndex);   if ( nIndex==0 && ( cCheck =='-' || cCheck =='_') ){      return 'first';     }   if (!(IsDigit(cCheck) || IsAlpha(cCheck) || cCheck=='-' || cCheck=='_' )){      return 'back';     }   }  }  }  function IsDigit(cCheck) {return (('0'<=cCheck) && (cCheck<='9'));}  function IsAlpha(cCheck) {return ((('a'<=cCheck) && (cCheck<='z')) || (('A'<=cCheck) && (cCheck<='Z')))} 

10、新闻滚动

<style type="text/css"> ul,li{margin:0;padding:0;font-size:12px;color:#999;} ul{height:100px;overflow:hidden;} ul li{line-height:20px;height:20px;} </style>  <ul id="news">  <li>New York web design Inc.1</li>  <li>Your site will be structured 2</li>  <li>hat will communicate the 3</li>   <li>hat will communicate the 4</li>  <li>hat will communicate the 5</li>  <li>hat will communicate the 6</li>  <li>hat will communicate the 7</li>  <li>hat will communicate the 8</li>  <li>hat will communicate the 9</li>   <li>New York web design Inc. 10</li>  <li>New York web design Inc.11</li>  <li>New York web design Inc. 12</li>  <li>New York web design Inc. 13</li>  <li>New York web design Inc. 14</li> </ul> 

Java代码 

// 用法 : 四个参数分别是:操作对象, 停留时间,相对速度(越小越快),每次滚动多少(最好和Li的Line-height一致)。  scroll('news', 3000, 1, 20 );  function scroll(element, delay, speed, lineHeight) {  var numpergroup = 5;  var slideBox = (typeof element == 'string')?document.getElementById(element):element;  var delay = delay||1000;  var speed=speed||20;  var lineHeight = lineHeight||20;  var tid = null, pause = false;  var liLength = slideBox.getElementsByTagName('li').length;  var lack = numpergroup-liLength%numpergroup;  for(i=0;i<lack;i++){  slideBox.appendChild(document.createElement("li"));  }  var start = function() {   tid=setInterval(slide, speed);  }  var slide = function() {   if (pause) return;   slideBox.scrollTop += 2;   if ( slideBox.scrollTop % lineHeight == 0 ) {   clearInterval(tid);   for(i=0;i<numpergroup;i++){    slideBox.appendChild(slideBox.getElementsByTagName('li')[0]);   }   slideBox.scrollTop = 0;   setTimeout(start, delay);   }  }  slideBox.onmouseover=function(){pause=true;}  slideBox.onmouseout=function(){pause=false;}  setTimeout(start, delay); } 

11、只允许输入正整数 (shopping cart 使用)

<script language="JavaScript" type="text/javascript"> function checkNum(obj){  var re = /^[1-9]/d*$/;  if (!re.test(obj.value)){  alert("只允许正整数!");  obj.value='';  obj.focus();  return false;  } } </script>  <input name="rate" type="text"onkeyup="checkNum(this)" /> 

 或正数

<script language="JavaScript" type="text/javascript">  function clearNoNum(obj)  {  //先把非数字的都替换掉,除了数字和.  objobj.value = obj.value.replace(/[^/d.]/g,"");  //必须保证第一个为数字而不是.  objobj.value = obj.value.replace(/^/./g,"");  //保证只有出现一个.而没有多个.  objobj.value = obj.value.replace(//.{2,}/g,".");  //保证.只出现一次,而不能出现两次以上  objobj.value = obj.value.replace(".","$#$").replace(//./g,"").replace("$#$",".");  } </script> 

只能输入数字和小数点的文本框:<input id="input1" onkeyup="clearNoNum(this)">  
12、 转换字符串为数字

/* js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。 */  parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN  parseFloat("1234blue"); //returns 1234.0 parseFloat("0xA"); //returns NaN parseFloat("22.5"); //returns 22.5 parseFloat("22.34.5"); //returns 22.34 parseFloat("0908"); //returns 908 parseFloat("blue"); //returns NaN  /* 还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。 Boolean(value)――把给定的值转换成Boolean型; Number(value)――把给定的值转换成数字(可以是整数或浮点数); String(value)――把给定的值转换成字符串。 */  Boolean(""); //false  empty string Boolean("hi"); //true  non-empty string Boolean(100); //true  non-zero number Boolean(null); //false - null Boolean(0); //false - zero Boolean(new Object()); //true  object  Number(false) 0 Number(true) 1 Number(undefined) NaN Number(null) 0 Number( "5.5 ") 5.5 Number( "56 ") 56 Number( "5.6.7 ") NaN Number(new Object()) NaN Number(100) 100  var s1 = String(null); //"null" var oNull = null; var s2 = oNull.toString(); //won't work, causes an error

 13、 判断文件格式(获得文件后缀)

// 用法:get_ext(this,'img');  function get_ext(name){  var pos = name.lastIndexOf('.');  var extname = name.substring(pos,name.length) // like: str.split('.')  var lastname = extname.toLowerCase();   if (lastname !='.jpg' && lastname !='.gif' && lastname !='.png' && lastname !='.bmp'){   return lastname;  }else{   return name;  }  } } 

14、截取字符串

// 简单型  <script type="text/javascript">  var str="Hello world!" document.write(str.substr(3,7))  </script>  // 结果是 lo worl   // 复杂型(中文或者中英文混合截取)  <script> //截取字符串 包含中文处理 //(串,长度,增加...) function subString(str, len, hasDot) {  var newLength = 0;  var newStr = "";  var chineseRegex = /[^/x00-/xff]/g;  var singleChar = "";  var strLength = str.replace(chineseRegex,"**").length;  for(var i = 0;i < strLength;i++)  {  singleChar = str.charAt(i).toString();  if(singleChar.match(chineseRegex) != null)  {   newLength += 2;  }  else  {   newLength++;  }  if(newLength > len)  {   break;  }  newStr += singleChar;  }   if(hasDot && strLength > len)  {  newStr += "...";  }  return newStr; }  document.write(subString("你好,this is a test!",10,1)); // 参数依次为 字符串, 截取的长度 和 是否显示省略号 </script> 

15、分割字符串

<script type="text/javascript">  var str = 'this_is_a_test_!'; var arr = str.split('_');  document.write(arr + "<br />"); // 罗列全部 document.write(arr[0] + "<br />"); // 取单项  </script>

 以上就是小编为大家整理的常用的javascript函数,希望对大家的学习有所帮助,之后还有更多javascript常用函数分享给大家,继续关注。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表