`
rfe48rfe
  • 浏览: 9073 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

js几个小技巧常用正则表达式

 
阅读更多

js几个小技巧常用正则表达式
2011年05月19日
  一项都是js中的小技巧,但十分的实用!
  1.document.write(); 输出语句
  2.JS中的注释为//
  3.传统的HTML文档顺序是:document->html->(head,body)
  4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)
  5.得到表单中元素的名称和值:document.getElementById(表单中元素的ID号).name(或value)
  6.一个小写转大写的JS: document.getElementById(output).value = document.getElementById(input).value.toUpperCase();
  7.JS中的值类型:String,Number,Boolean,Null,Object,Function
  8.JS中的字符型转换成数值型:parseInt(),parseFloat()
  9.JS中的数字转换成字符型:(+变量)
  10.JS中的取字符串长度是:(length)
  11.JS中的字符与字符相连接使用+号.
  12.JS中的比较操作符有:==等于,!=不等于,>,>=,
  49.引用一个文件式的JS:
  50.指定在不支持脚本的浏览器显示的HTML:
  51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:dfsadf
  52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError
  53.JS中的换行:\n
  54.窗口全屏大小:function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;
  55.JS中的all代表其下层的全部元素
  56.JS中的焦点顺序:document.getElementByid(表单元素).tabIndex = 1
  57.innerHTML的值是表单元素的值:如how are you,则innerHTML的值就是:how are you
  58.innerTEXT的值和上面的一样,只不过不会把这种标记显示出来.
  59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.
  60.isDisabled判断是否为禁止状态.disabled设置禁止状态
  61.length取得长度,返回整型数值
  62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc
  63.window.focus()使当前的窗口在所有窗口之前.
  64.blur()指失去焦点.与FOCUS()相反.
  65.select()指元素为选中状态.
  66.防止用户对文本框中输入文本:onfocus=this.blur()
  67.取出该元素在页面中出现的数量:document.all.tags(div(或其它HTML标记符)).length
  68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()
  69.状态栏文字的设置:window.status=’文字’,默认的状态栏文字设置:window.defaultStatus = ’文字.’;
  70.添加到收藏夹:external.AddFavorite(http://www.dannyg.com";,jaskdlf);
  71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;
  72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.
  73.JS中的self指的是当前的窗口
  74.JS中状态栏显示内容:window.status=内容
  75.JS中的top指的是框架集中最顶层的框架
  76.JS中关闭当前的窗口:window.close();
  77.JS中提出是否确认的框:if(confirm(Are you sure?)){alert(ok);}else{alert(Not Ok);}
  78.JS中的窗口重定向:window.navigate(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
  这个方法对于字符顺序有要求的字符串可能不适用。
  得用正则表达式从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]/g,’’))
  ********************************************************************************************************************************
  几个正则表式的应用无论在Java还是Javascript中对正则表达式都给了非常高效的实现。能够用好正则表达式,事半功倍呀。程序的性能也有非常大的提高。最近使用的经验总结:
  1. 在Eclipse中,一段文字变成字符串。Find[(^.*$)] replase ['$1'+] 而在UltraEdit中用的是^1,有些许不同。
  2. 在Javascript中的Trim :str.replace(/^\s*|\s*$/g,"");
  3. 在Javascript中的去掉空行:str = str.replace(/(\n[\s|\t]*\r*\n)/g, '\n');
  4. 在Javascript中的去掉首尾的空行或回行:str.replace(/^[\n|\r\n]*|[\n|\r\n]*$/g,'');
  5. 在Javascript中按行分割字符串:split(/[\n|\r\n]{1,}/); 空行不会出现;
  6. UE中将'[ ]' 替换为'[{{}}]', find '^[^(*^)^]' replace with '[{{^1}}]'
  7. 注释中/** */使用懒惰的匹配方式 .*?来达到中间的注释也能被发现。
  

  *******************************************************************************************************************************
  其他语言的一些参考
  常用数字验证
  正则表达式
  "d{n}" n为规定长度
  "d{n,m}" n到m的长度范围
  中国电话号码验证
  匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222
  正则表达式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"
  中国邮政编码验证
  匹配形式如:215421
  正则表达式 "d{6}"
  电子邮件验证
  匹配形式如:justali@justdn.com
  正则表达式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
  身份证验证
  匹配形式如:15位或者18位身份证
  正则表达式 "d{18}|d{15}"
  非法字符验证
  匹配非法字符如: & / ' |
  正则表达式 [^&/|'\]+
  日期验证
  匹配形式如:20030718,030718
  范围:1900--2099
  正则表达式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}
  "^\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
分享到:
评论

相关推荐

    EditPlus 2整理信箱的工具

    (技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。 直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有...

    Editplus 3[1].0

    (技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。 直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有...

    JavaScript王者归来part.1 总数2

     10.1.2 JavaScript中的正则表达式   10.2 正则表达式的规则   10.2.1 直接量字符   10.2.2 字符类和布尔操作   10.2.3 重复   10.2.4 选择、分组和引用   10.2.5 指定匹配的位置   10.2.6 标志——...

    JavaScript实战

    4.3.2 构建一个正则表达式 85 4.3.3 分组正则表达式的部分 88 4.3.4 有用的正则表达式 89 4.3.5 匹配模式 94 4.3.6 替换文本 96 4.3.7 尝试正则表达式 97 4.4 数值 97 4.4.1 把字符串改变为数值 97 4.4.2 测试数值 ...

    php网络开发完全手册

    1.2.2 PHP擅长的几个领域及产品介绍 5 1.2.3 PHP不适合做什么 6 1.2.4 其他案例 6 1.3 PHP的Hello, world预览 6 1.3.1 第一个PHP程序Hello, world 6 1.3.2 学习PHP应该准备哪些软件 8 1.3.3 相关知识领域的介绍 9 ...

    Tcl_TK编程权威指南pdf

    其他使用正则表达式的命令 第12章 脚本库及软件包 确定软件包的位置:auto-path变量 使用软件包 对软件包加载的总结 package命令 基于文件tclindex的库 unknown命令 方便交互 tclshell的库环境 编码风格 ...

    程序天下:JavaScript实例自学手册

    13.35 使用正则表达式验证日期 13.36 全面的日期选择功能 13.37 全球的时间查看表 13.38 无刷新定时取数据 13.39 取当月的最后一天 第 14章 数字、数组和统计函数特效 14.1 边打字边显示字数 14.2 创建随机数 14.3 ...

    PHP和MySQL Web开发第4版pdf以及源码

    2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 ...

    PHP和MySQL Web开发第4版

    2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 ...

    PHP和MySQL WEB开发(第4版)

    2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用...

    《程序天下:JavaScript实例自学手册》光盘源码

    13.35 使用正则表达式验证日期 13.36 全面的日期选择功能 13.37 全球的时间查看表 13.38 无刷新定时取数据 13.39 取当月的最后一天 第 14章 数字、数组和统计函数特效 14.1 边打字边显示字数 14.2 创建随机数 14.3 ...

    asp.net知识库

    与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const...

    IBM WebSphere Portal门户开发笔记01

    58、JS正则表达式去除空格类方法 335 59、JS重写CONFIRM把确定修改为是与否 335 60、JS执行EXE可执行文件 336 61、JS读取注册表且执行EXE文件 336 62、JS与VBSCRIPT的结合使用 337 63、IE与火狐获取标签的文本内容...

Global site tag (gtag.js) - Google Analytics