经正则表达式。常用之匹配正则表达式和实例。

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

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

正则表达式用于字符串处理,表单验证等场所,实用高效,但用到常老是不极端把,以致数要达到网查一番。我用有些常用之表达式收藏在此地,作备忘之故。本贴随时会更新。

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

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

行使:计算字符串的长短(一个双字节字符长度计2,ASCII字符计1)

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

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

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

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

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

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

相当空行的正则表达式:\n[\s| ]*\r

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

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

利用:javascript中没有像vbscript那样的trim函数,我们不怕得以是表达式来落实,如下:

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

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

运:javascript中并未如vbscript那样的trim函数,我们就算得应用这表达式来贯彻,如下:

使正则表达式分解同转移IP地址:

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

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

应用正则表达式分解同更换IP地址:

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!”)
}
}

下面是以正则表达式匹配IP地址,并将IP地址转换成对承诺数值的javascript程序:

然而者的次第要无用正则表达式,而直接用split函数来诠释可能再次简明,程序如下:

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!”)
}
}

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))

唯独者的先后一旦未用正则表达式,而一直用split函数来解释可能重简短,程序如下:

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

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))

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

匹配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上发贴寻求一个表达式来兑现去除重复字符的措施,最终并未找到,这是自己能够想到的太简便的兑现方式。思路是动后望引用取出包括再的字符,再以重的字符建立第二单表达式,取到无另行的字符,两者串连。这个措施对于字符顺序来求的字符串可能无适用。

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

自身原本在CSDN上发贴寻求一个表达式来落实去除重复字符的不二法门,最终并未找到,这是自力所能及想到的极其简便易行的贯彻方式。思路是应用后朝引用取出包括再的字符,再以更的字符建立亚只表达式,取到非重复的字符,两者串连。这个法对字符顺序来要求的字符串可能不适用。

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

得用正则表达式从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(/[^\u4E00-\u9FA5]/g,”)”
onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\u4E00-\u9FA5]/g,”))”

故正则表达式限制只能输入数字:onkeyup=”value=value.replace(/[^\d]/g,”)
“onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))”

据此正则表达式限制只能输入全角字符: onkeyup=”value=value.replace(/[^\uFF00-\uFFFF]/g,”)”
onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\uFF00-\uFFFF]/g,”))”

之所以正则表达式限制只能输入数字lovebet与英文:onkeyup=”value=value.replace(/[\W]/g,”)
“onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/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,”))”