`
阅读更多


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 =...

    netscape.javascript.JSObject

    applet 访问javascript的jar

    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详解》 在JavaScript的世界里,开发者们一直在寻找更为优雅、灵活的编程模式。JS.Class 2.1的发布,正是为了解决这一需求,它引入了Ruby语言的类定义方式,使得JavaScript的...

    nsfwjs.min.js 图片鉴黄

    nsfwjs 是一个JavaScript库,专门用于在前端进行成人内容(Not Safe For Work,NSFW)检测。它使用机器学习模型,特别是TensorFlow.js,这是一个由Google开发的JavaScript库,允许在浏览器中运行机器学习模型,实现...

    crypto-js.js的js库

    "crypto-js.js的js库" 指的是一个JavaScript库,名为`crypto-js`,它专门用于加密和解密操作。这个库是JavaScript开发者在Web应用中处理安全数据传输、用户密码存储以及其他涉及加密需求时常用的一个工具。 **描述...

    BigDecimal.js.zip

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

    browser.min.js和browser-polyfill.min.js.rar

    在标题“browser.min.js和browser-polyfill.min.js.rar”中,提到的两个JavaScript文件,`browser.min.js` 和 `browser-polyfill.min.js`,就是针对这个问题提供解决方案的关键工具。 `browser.min.js` 是一个小型...

    jsFormatter.js + htmlFormatter.js +

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

    china.js.zip

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

    LUA-JS.zip_js lua.js_js调用 lua_lua JavaScript_lua调用js_lua转js

    JS和LUA交互,主要是JS和LUA交互实现模版,可以作为参考

    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

    js.jar包,可以使用

    js.jar包,可以使用。js.jar包,可以使用。js.jar包,可以使用

    JavaScript的GIF动画生成gif.js.zip

    gif.js 是一个可直接在浏览器上运行的 JavaScript GIF 编码器。支持的浏览器包括:Google ChromeFirefox 17Safari 6Internet Explorer 10Mobile Safari iOS 6使用方法:var gif = new GIF({ workers: 2, ...

    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是一种广泛应用于早期互联网视频的...

    video.js5.18.4库

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

    JavaScript_Videojs开源HTML5视频播放器.zip

    JavaScript_Videojs开源HTML5视频播放器.zip是一个包含JavaScript编程语言和Video.js库的资源包。Video.js是一个广泛使用的开源HTML5视频播放器,它允许开发者创建功能丰富的、自定义的视频体验。在这个压缩包中,有...

Global site tag (gtag.js) - Google Analytics