Javscript正则表达式.docVIP

  • 2
  • 0
  • 约7.4千字
  • 约 7页
  • 2016-03-19 发布于浙江
  • 举报
Javscript正则表达式

Javscript小技巧正则表达式: 正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。正则以其简单、实用、快速深得广大编程人员的热爱。? 编写正则一些思维: 1、首先,确定规则。你需要匹配一个什么样字符串,它有哪几部分构成,它有哪些特征。 2、提出最小单位。有的时候,一些匹配规则是重复的,我们可以试着找到共同点,规划为一条规则。 3、根据其规则、最小单位,逐一写出正则 4、将这些单位正则组合统一,构成你想要的完整正则。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) Stotype.len=function(){return this.replace([^\x00-\xff]/g,aa).length;} 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的正则表达式:/(.*).*\/\1|(.*) \// 匹配首尾空格的正则表达式:(^\s*)|(\s*$) ? Stotype.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=68 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 =============================== 如果var s = abacabefggeeii 结果就不对了,结果为:abeicfgg 正则表达式的能力有限 我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。 得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1 s=[url]/page1.htm[/url] 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(/[^\uF

文档评论(0)

1亿VIP精品文档

相关文档