javascript常用

1、判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
 function testNum() {
  var num=document.form1.tt.value;
  var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
  var result = reg.test(num);
  if(result==false)
   alert("输入格式错误"); 
 }
 
</script>
</head>

<body>
<form name="form1" method="post">
<input type="text" name="tt" />
<input type="button" value="提交" onclick="testNum();" />
</form>
</body>
</html>

2、截取字符串abcdefg的efg

<script type="text/javascript">
 window.onload=function test() {
  var str = "abcdefg";
  if (/efg/.test(str))
  {  
   var efg = str.substr(str.indexOf("efg"), 3);  
   alert(efg);
  }
 }
</script>

3、判断一个字符串中出现次数最多的字符,统计这个次数

<script type="text/javascript">

window.onload=function test() {
  var str = "abcdefgaddda";
  var obj = {};
  for (var i = 0, l = str.length; i<l; i++) {   
   var key = str[i];   
   if (!obj[key]) {      
    obj[key] = 1;   
   } else {      
    obj[key]++;   
   }
  }  
 

 
  var max = -1;
  var max_key = "";
  var key;
  for (key in obj) {   
   if (max < obj[key]) {      
    max = obj[key];      
    max_key = key;   
   }
  }  
  alert("max:"+max+" max_key:"+max_key);

</script>

4、IE与FF脚本兼容性问题

(1) window.event:

表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象

(2) 获取事件源

IE用srcElement获取事件源,而FF用target获取事件源

(3) 添加,去除事件

IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)

FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)

(4) 获取标签的自定义属性

IE:div1.value或div1[“value”]

FF:可用div1.getAttribute(“value”)

(5) document.getElementsByName()和document.all[name]

IE:document.getElementsByName()和document.all[name]均不能获取div元素

FF:可以

(6) input.type的属性

IE:input.type只读

FF:input.type可读写

(7) innerText textContent outerHTML

IE:支持innerText, outerHTML

FF:支持textContent

(8) 是否可用id代替HTML元素

IE:可以用id来代替HTML元素

FF:不可以

这里只列出了常见的,还有不少,更多的介绍可以参看JavaScript在IE浏览器和Firefox浏览器中的差异总结

5、规避javascript多人开发函数重名问题

(1) 可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀

(2) 将每个开发人员的函数封装到类中,调用的时候就调用类的函数,即使函数重名只要类名不重复就ok

6、javascript面向对象中继承实现

javascript面向对象中的继承实现一般都使用到了构造函数和Prototype原型链,简单的代码如下:
    function Animal(name) {    
        this.name = name; 
    }  
    Animal.prototype.getName = function() {alert(this.name)}
    function Dog() {};
    Dog.prototype = new Animal("Buddy");
    Dog.prototype.constructor = Dog;
    var dog = new Dog();

 

原文地址:https://www.cnblogs.com/zhaohualu/p/3734200.html