`
阅读更多


1.JS对象操作语句 : with 语句的语法:            
                  with (对象名称){
                         执行语句                    
                  }
作用 :如果你想使用某个对象的许多属性或方法,只要在 with 语句的()中写出这个对象名称,然后在下边执行语句中直接写这个对象的属性名或方法名就OK了.

 

2.js 执行顺序 :
首先执行本页面的代码,被嵌套的js中再执行。然后是下层嵌套代码的执行。
嵌套方式 : document.write("<scr" + "ipt type='text/javascript' src='test.js'></scr" + "ipt>");

 

 

3.checkbox 全选

  1. <script type="text/javascript " >
  2. <!--
  3. // 说明:Javascript 控制 CheckBox全选 与取消全选
  4. // 整理:http://www.CodeBit.cn
  5.  
  6. function checkAll( name )
  7. {
  8.     var el = document.getElementsByTagName ( 'input' ) ;
  9.     var len = el.length ;
  10.     for ( var i=0 ; i<len; i++)
  11.     {
  12.         if ( ( el[ i] .type =="checkbox " ) && ( el[ i] .name ==name ) )
  13.         {
  14.             el[ i] .checked = true ;
  15.         }
  16.     }
  17. }
  18. function clearAll( name )
  19. {
  20.     var el = document.getElementsByTagName ( 'input' ) ;
  21.     var len = el.length ;
  22.     for ( var i=0 ; i<len; i++)
  23.     {
  24.         if ( ( el[ i] .type =="checkbox " ) && ( el[ i] .name ==name ) )
  25.         {
  26.             el[ i] .checked = false ;
  27.         }
  28.     }
  29. }
  30. //-->
  31. </script>

 

 

 

4.变量作用域: 

 

anonymousFuntion1 = function(){
 globalvar = 'global scope'; //全局声明,因为“var”遗漏了
 return localvar;
}();
alert(globalvar); //弹出“global scope”,因为函数中的变量是全局声明

anonymousFuntion2 = function(){
 var localvar = 'local scope'; //使用“var”局部声明
 return localvar;
}();
alert(localvar); //错误 “localvar未定义”。没有全局定义localvar

 

 

var myscope = "global";
function showScope(myscope){
 return myscope; //局部作用域,即使有一个相同名字的全局变量
}
alert(showScope('local'));

function globalScope(myscope){
 myscope = window.myscope; //全局作用域
 return myscope;
}
alert(globalScope(’local’));

 

 

 

 加密网页破解:

 地址栏输入

 

javascript:s=document.documentElement.outerHTML;document.write('<---body><---/body>');document.body.innerText=s;

 

 

 window.onload=init() 与 window.onload=init 区别:

 前者先执行函数 后加载BODY

 后者相当于将一个函数当作变量赋值到window.onload上,会在界面加载完成后加载

 

 

js通用验证:

function CheckForm(oForm)
{
    var els = oForm.elements;
    //遍历所有表元素
    for(var i=0;i<els.length;i++)
    {
        //是否需要验证
        if(els[i].check)
        {
            //取得验证的正则字符串
            var sReg = els[i].check;
            //取得表单的值,用通用取值函数
            var sVal = GetValue(els[i]);
            //字符串->正则表达式,不区分大小写
            var reg = new RegExp(sReg,"i");
            if(!reg.test(sVal))
            {
                //验证不通过,弹出提示warning
                alert(els[i].warning);
                //该表单元素取得焦点,用通用返回函数
                GoBack(els[i])  
                return false;
            }
        }
    }
}

//通用取值函数分三类进行取值
//文本输入框,直接取值el.value
//单多选,遍历所有选项取得被选中的个数返回结果"00"表示选中两个
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个
function GetValue(el)
{
    //取得表单元素的类型
    var sType = el.type;
    switch(sType)
    {
        case "text":
        case "hidden":
        case "password":
        case "file":
        case "textarea": return el.value;
        case "checkbox":
        case "radio": return GetValueChoose(el);
        case "select-one":
        case "select-multiple": return GetValueSel(el);
    }
    //取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
    function GetValueChoose(el)
    {
        var sValue = "";
        //取得第一个元素的name,搜索这个元素组
        var tmpels = document.getElementsByName(el.name);
        for(var i=0;i<tmpels.length;i++)
        {
            if(tmpels[i].checked)
            {
                sValue += "0";
            }
        }
        return sValue;
    }
    //取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
    function GetValueSel(el)
    {
        var sValue = "";
        for(var i=0;i<el.options.length;i++)
        {
            //单选下拉框提示选项设置为value=""
            if(el.options[i].selected && el.options[i].value!="")
            {
                sValue += "0";
            }
        }
        return sValue;
    }
}

//通用返回函数,验证没通过返回的效果.分三类进行取值
//文本输入框,光标定位在文本输入框的末尾
//单多选,第一选项取得焦点
//单多下拉菜单,取得焦点
function GoBack(el)
{
    //取得表单元素的类型
    var sType = el.type;
    switch(sType)
    {
        case "text":
        case "hidden":
        case "password":
        case "file":
        case "textarea": el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();
        case "checkbox":
        case "radio": var els = document.getElementsByName(el.name);els[0].focus();
        case "select-one":
        case "select-multiple":el.focus();
    }
}

 

使用方法:

账号:<input type="text" check="^\S+$" warning="账号不能为空,且不能含有空格" name="id">不能为空<br>

 

 

 

 

 

常用正则:

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字

匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

原载地址:http://lifesinger.3322.org/myblog/?p=185

  
收集一些常用的正则表达式。



正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一

番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。

匹配中文字符的正则表达式: [u4e00-u9fa5]

匹配双字节字符(包括汉字在内):[^x00-xff]

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}

匹配空行的正则表达式:n[s| ]*r

匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/ 

匹配首尾空格的正则表达式:(^s*)|(s*$)

应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, "");
}

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(ip)
{
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

利用正则表达式去除字串中重复的字符的算法程序:

var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"") 
alert(s1+s2) //结果为:abcefgi

我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单

的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复

的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。

得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s)

利用正则表达式限制网页表单里的文本框输入内容:

用 正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'''')" 

onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/

[^u4E00-u9FA5]/g,''''))"

用 正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'''')" 

onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/

[^uFF00-uFFFF]/g,''''))"

用 正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,'''') 

"onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/

[^d]/g,''''))"

用 正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,'''') 

"onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^d]

常用的正则表达式 

1、非负整数:”^d+$” 

2、正整数:”^[0-9]*[1-9][0-9]*$” 

3、非正整数:”^((-d+)|(0+))$” 

4、负整数:”^-[0-9]*[1-9][0-9]*$” 

5、整数:”^-?d+$” 

6、非负浮点数:”^d+(.d+)?$” 

7、正浮点数:”^((0-9)+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$

” 

8、非正浮点数:”^((-d+.d+)?)|(0+(.0+)?))$” 

9、负浮点数:”^(-((正浮点数正则式)))$” 

10、英文字符串:”^[A-Za-z]+$” 

11、英文大写串:”^[A-Z]+$” 

12、英文小写串:”^[a-z]+$” 

13、英文字符数字串:”^[A-Za-z0-9]+$” 

14、英数字加下划线串:”^w+$” 

15、E-mail地址:”^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$” 

16、URL:”^[a-zA-Z]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$”

"^\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
/^(d{2}\|d{4})-((0(\[1-9\]{1}))\|(1\[1\|2\]))-((\[0-2\](\[1-9\]{1}))\|(3\[0\|1\]))

$/   //  年-月-日
/^((0(\[1-9\]{1}))\|(1\[1\|2\]))/((\[0-2\](\[1-9\]{1}))\|(3\[0\|1\]))/(d{2}\|d{4})

$/   // 月/日/年
"^(\[w-.\]+)@((\[\[0-9\]{1,3}.\[0-9\]{1,3}.\[0-9\]{1,3}.)\|((\[w-\]+.)+))(\[a-zA-Z\]{2,4}

\|\[0-9\]{1,3})(\]?)$"   //Emil
"(d+-)?(d{4}-?d{7}\|d{3}-?d{8}\|^d{7,8})(-d+)?"  //电话号码
"^(d{1,2}\|1dd\|2\[0-4\]d\|25\[0-5\]).(d{1,2}\|1dd\|2\[0-4\]d\|25\[0-5\]).(d{1,2}\|1dd\|2

\[0-4\]d\|25\[0-5\]).(d{1,2}\|1dd\|2\[0-4\]d\|25\[0-5\])$"   //IP地址

匹配中文字符的正则表达式: \[\u4e00-\u9fa5\]
匹配双字节字符(包括汉字在内):\[^\x00-\xff\]
匹配空行的正则表达式:\n\[\s\| \]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>\|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)\|(\s*$)
匹配Email地址的正则表达式:\w+(\[-+.\]\w+)*@\w+(\[-.\]\w+)*\.\w+(\[-.\]\w+)\*
匹配网址URL的正则表达式:^\[a-zA-z\]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^\[a-zA-Z\]\[a-zA-Z0-9_\]

{4,15}$
匹配国内电话号码:(\d{3}-\|\d{4}-)?(\d{8}\|\d{7})?
匹配腾讯QQ号:^\[1-9\]*\[1-9\]\[0-9\]*$

 

分享到:
评论

相关推荐

    JavaScript解释器js.js.zip

    Instead of trying to create an interpreter from scratch, SpiderMonkey is compiled into LLVM and then emscripten translates the output into JavaScript. 示例代码: var jsObjs = JSJS.Init(); var rval =...

    crypto-js.min.js

    aes加密解密用js,CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法,CryptoJS是一个纯javascript写的加密类库,我们使用它只需要加入相关的引用即可。

    JS.Class 2.1发布 Ruby风格的JavaScript.zip

    《JS.Class 2.1:Ruby风格的JavaScript编程实践》 JS.Class 2.1的发布,标志着JavaScript世界中引入了一种新的编程范式,它借鉴了Ruby语言的设计哲学,为JavaScript开发者带来了更加优雅和简洁的编码体验。在这个...

    Web端RSA加密机密库包含RSA.js Barrett.js BigInt.js JavaScript文件,直接解压即可使用

    RSA加密脚本 JavaScript 参考:Blackberry10 使用js+HTML5开发 RSA加密解密时遇到的问题:BB10端使用js加密与解密, 服务器端使用加密与解密 1,加密非常的简单代码机会上没怎么修改,另外js加密可能出现的问题在BB10 ...

    BigDecimal.js.zip

    总之,BigDecimal.js是一个强大的JavaScript库,专门用于处理大数的高精度计算,通过引入"BigDecimal-all-last.min.js",开发者可以获得精确的大数运算能力,从而避免JavaScript原生数据类型的精度问题。在开发过程...

    RSA加密(RSA..js BigInt.js Barrett.js)

    在这个压缩包中,包含了三个JavaScript文件:RSA.js、BigInt.js和Barrett.js,这些都是实现RSA加密前端功能的重要组成部分。 首先,RSA.js是核心加密库,它包含了RSA算法的具体实现。RSA算法基于两个大素数的乘积,...

    jsFormatter.js + htmlFormatter.js +

    1. **jsFormatter.js**: 这个文件通常是一个JavaScript代码格式化器,它的作用是将混乱的JavaScript代码整理成具有良好可读性的格式。它可能包含了缩进、换行、注释排序等功能,有助于开发者提高代码审查效率,保持...

    JavaScript数学计算库Jmat.js.zip

    Jmat.js 是一个 JavaScript 的数学计算库。支持复杂的数学函数和统计。 标签:Jmatjs

    china.js.zip

    "china.js.zip" 是一个包含JavaScript代码的压缩文件,主要用于创建与中国的地图相关的交互式功能。这个文件的核心是"china.js",很可能是一个用于绘制中国地理信息、展示省份或城市数据的JavaScript库。从标签...

    mp4box.js.zip_mileq5o_mp4box.all.js_mp4box.js_mp4切片的软件_mp4文件

    MP4Box.js是一个JavaScript库,专门用于处理MP4文件,特别是在Web环境中。它在标题和描述中被提及,主要用于获取MP4文件的信息、对MP4文件进行切片以及从MP4文件中提取帧来创建TextTracks。这个工具对于开发者来说...

    jquery-3.5.0.js jquery-3.5.0.min.js.zip

    jquery-3.5.0.js jquery-3.5.0.min.js.zip

    video.js5.18.4库

    3. 自定义主题:video.js提供了丰富的CSS样式和JavaScript API,允许开发者自定义播放器的外观和行为,如改变控制栏颜色、布局、添加自定义按钮等,满足个性化需求。 4. 多语言支持:video.js 5.18.4版本还支持多...

    JS的TTS引擎speak.js.zip

    speak.js 是一个 JavaScript 实现的 Text-to-Speech 的引擎。在线演示:http://projects.mattytemple.com/speak-js/ 标签:speak

    Learning.Node.js.for..NET.Developers.epub

    This short guide will help you develop applications using JavaScript and Node.js, leverage your existing programming skills from .NET or Java, and make the most of these other platforms through ...

    flv.js和flv.min.js和基本使用demo(附带js文件)

    FLV.js和FLV.min.js是JavaScript库,用于在Web浏览器中播放FLV(Flash Video)格式的视频内容。这些文件是开源项目,通常用于那些希望在HTML5环境下支持旧版FLV视频内容的网站。FLV是一种广泛应用于早期互联网视频的...

    turn.js+pdf.js资源

    Turn.js和PDF.js是两个在Web开发中用于处理文档展示的JavaScript库,它们分别专注于不同的领域,但可以协同工作以提供出色的用户体验。Turn.js是一个轻量级的库,主要用于创建具有翻页效果的数字杂志、电子书或者...

    jquery-3.7.0.min.js(jQuery下载)

    jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...

    React所需的三个js文件3--babel.min.js.zip

    在React的应用开发中,有三个关键的JavaScript文件通常会被用到:`react.js`、`react-dom.js`和`babel.min.js`。在这个场景中,我们只提到了`babel.min.js`,它是React开发中的一个重要组成部分。 `babel.min.js`是...

    d3.min.js d3.js

    D3.js,全名Data-Driven Documents,是一个强大的JavaScript库,专用于数据可视化。这个库由Mike Bostock创建,其核心理念是让开发者能够直接操作DOM(文档对象模型)来绑定数据,并根据数据的变化自动更新视图。D3....

Global site tag (gtag.js) - Google Analytics