匚w中文字符的正则表辑ּQ?[u4e00-u9fa5]
评注Q匹配中文还真是个头疼的事,有了q个表达式就好办?/p>
匚w双字节字W?包括汉字在内)Q[^x00-xff]
评注Q可以用来计字W串的长度(一个双字节字符长度?QASCII字符?Q?/p>
匚wI白行的正则表达式:ns*r
评注Q可以用来删除空白行
匚wHTML标记的正则表辑ּQ?lt;(S*?)[^>]*>.*?|<.*? />
评注Q网上流传的版本太糟p,上面q个也仅仅能匚w部分Q对于复杂的嵌套标记依旧无能为力
匚w首尾I白字符的正则表辑ּQ^s*|s*$
评注Q可以用来删除行首行I白字符(包括I格、制表符、换늬{等)Q非常有用的表达?/p>
匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注Q表单验证时很实?/p>
匚w|址URL的正则表辑ּQ[a-zA-z]+://[^s]*
评注Q网上流传的版本功能很有限,上面q个基本可以满需?/p>
匚w帐号是否合法(字母开_允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注Q表单验证时很实?/p>
匚w国内电话LQd{3}-d{8}|d{4}-d{7}
评注Q匹配Ş式如 0511-4405222
?
021-87888822
匚w腾讯QQP[1-9][0-9]{4,}
评注Q腾讯QQ号从10000开?/p>
匚w中国邮政~码Q[1-9]d{5}(?!d)
评注Q中国邮政编码ؓ6位数?/p>
匚ww䆾证:d{15}|d{18}
评注Q中国的w䆾证ؓ15位或18?/p>
匚wip地址Qd+.d+.d+.d+
评注Q提取ip地址时有?/p>
匚w特定数字Q?br />
^[1-9]d*$ //匚w正整?br />
^-[1-9]d*$ //匚w负整?br />
^-?[1-9]d*$ //匚w整数
^[1-9]d*|0$ //匚w非负整数Q正整数 + 0Q?br />
^-[1-9]d*|0$ //匚w非正整数Q负整数 + 0Q?br />
^[1-9]d*.d*|0.d*[1-9]d*$ //匚w正QҎ
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匚w负QҎ
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匚w点?br />
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匚w非负点敎ͼ正QҎ + 0Q?br />
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匚w非正点敎ͼ负QҎ + 0Q?br />
评注Q处理大量数据时有用Q具体应用时注意修正
匚w特定字符Ԍ
^[A-Za-z]+$ //匚w?6个英文字母组成的字符?br />
^[A-Z]+$ //匚w?6个英文字母的大写l成的字W串
^[a-z]+$ //匚w?6个英文字母的写l成的字W串
^[A-Za-z0-9]+$ //匚w由数字和26个英文字母组成的字符?br />
^w+$ //匚w由数字?6个英文字母或者下划线l成的字W串
在用RegularExpressionValidator验证控g时的验证功能及其验证表达式介l如?
只能输入数字Q?#8220;^[0-9]*$”
只能输入n位的数字Q?#8220;^d{n}$”
只能输入臛_n位数字:“^d{n,}$”
只能输入m-n位的数字Q?#8220;^d{m,n}$”
只能输入零和非零开头的数字Q?#8220;^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实敎ͼ“^[0-9]+(.[0-9]{2})?$”
只能输入?-3位小数的正实敎ͼ“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数Q?#8220;^+?[1-9][0-9]*$”
只能输入非零的负整数Q?#8220;^-[1-9][0-9]*$”
只能输入长度?的字W:“^.{3}$”
只能输入?6个英文字母组成的字符Ԍ“^[A-Za-z]+$”
只能输入?6个大写英文字母组成的字符Ԍ“^[A-Z]+$”
只能输入?6个小写英文字母组成的字符Ԍ“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符Ԍ“^[A-Za-z0-9]+$”
只能输入由数字?6个英文字母或者下划线l成的字W串Q?#8220;^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开_长度?-18之间Q?/p>
只能包含字符、数字和下划Uѝ?br />
验证是否含有^%&’,;=?$”{字W:“[^%&’,;=?$x22]+”
只能输入汉字Q?#8220;^[u4e00-u9fa5],{0,}$”
验证Email地址Q?#8220;^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURLQ?#8220;^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话LQ?#8220;^((d{3,4})|d{3,4}-)?d{7,8}$”
正确格式为:“XXXX-XXXXXXX”Q?#8220;XXXX-XXXXXXXX”Q?#8220;XXX-XXXXXXX”Q?/p>
“XXX-XXXXXXXX”Q?#8220;XXXXXXX”Q?#8220;XXXXXXXX”?br />
验证w䆾证号Q?5位或18位数字)Q?#8220;^d{15}|d{}18$”
验证一q的12个月Q?#8220;^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”?#8220;1”“12”
验证一个月?1天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正确格式为:“01”“09”?#8220;1”“31”?/p>
匚w中文字符的正则表辑ּQ?[u4e00-u9fa5]
匚w双字节字W?包括汉字在内)Q[^x00-xff]
匚wI的正则表辑ּQn[s| ]*r
匚wHTML标记的正则表辑ּQ?<(.*)>.*<!--1-->|<(.*) />/
匚w首尾I格的正则表辑ּQ?^s*)|(s*$)
匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匚w|址URL的正则表辑ּQhttp://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
(1)应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?br /> String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}
(2)应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现摘自http://www.aygfsteel.com/zilong/archive/2007/04/04/108415.html
很多|页都是框架l构的,在很多的情况下会通过按钮点击事g或链接,跛_框架转到其它界面。例如说点击“注销d”q回到登录界面?/p>
一、通过q行脚本跛_框架有以下几U写法:
1. <script language = javascript>window.open('Login.aspx','_top')</script>"
2. <script language = javascript>window.open('Login.aspx','_parent')</script>"
3. <script language = javascript>window.parent.location.href='login.aspx'</script>
4. Response.Write("<script>window.parent.opener=null;window.top.close();</script>")
Response.Write("<script>window.open('index.aspx','');</script>")
q种Ҏ会先关闭原框架窗口,再重新打开一个新的窗口。这在很多功能界面对览器进行了改变讄Q而回到登陆界面又用缺省设|的情况下适用?/p>
二、链接蟩出框?/p>
q种情况很单了Q加?strong> target="_top" 属性就可以了?/p>
只能输入数字
function txtSort_check()
{
return event.keyCode>=48&&event.keyCode<=57 || event.keyCode>=96&&event.keyCode<=105 || event.keyCode==8
|| event.keyCode==37 || event.keyCode==39;
}
一些常用的正则表达?br> 2006-1-13 16:25:28
"^\d+Q? //非负整数Q正整数 + 0Q?nbsp;
"^[0-9]*[1-9][0-9]*Q? //正整?nbsp;
"^((-\d+)|(0+))Q? //非正整数Q负整数 + 0Q?nbsp;
"^-[0-9]*[1-9][0-9]*Q? //负整?nbsp;
"^-?\d+Q? //整数
"^\d+(\.\d+)?Q? //非负点敎ͼ正QҎ + 0Q?nbsp;
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))Q? //正QҎ
"^((-\d+(\.\d+)?)|(0+(\.0+)?))Q? //非正点敎ͼ负QҎ + 0Q?nbsp;
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))Q? //负QҎ
"^(-?\d+)(\.\d+)?Q? //点?nbsp;
"^[A-Za-z]+Q? //?6个英文字母组成的字符?nbsp;
"^[A-Z]+Q? //?6个英文字母的大写l成的字W串
"^[a-z]+Q? //?6个英文字母的写l成的字W串
"^[A-Za-z0-9]+Q? //由数字和26个英文字母组成的字符?nbsp;
"^\w+Q? //由数字?6个英文字母或者下划线l成的字W串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+Q? //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?Q? //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))Q? // q???br> /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})Q? // ??q?br> "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)Q? //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话L
"^(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])Q? //IP地址
匚w中文字符的正则表辑ּQ?nbsp;[\u4e00-\u9fa5]
匚w双字节字W?包括汉字在内)Q[^\x00-\xff]
匚wI的正则表辑ּQ\n[\s| ]*\r
匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/
匚w首尾I格的正则表辑ּQ?^\s*)|(\s*Q?
匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匚w|址URL的正则表辑ּQ^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?Q?br> 匚w帐号是否合法(字母开_允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}Q?br> 匚w国内电话LQ?\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匚w腾讯QQP^[1-9]*[1-9][0-9]*Q?/p>
下表是元字符及其在正则表辑ּ上下文中的行为的一个完整列表:
\ 下一个字W标Cؓ一个特D字W、或一个原义字W、或一个后向引用、或一个八q制转义W?/p>
^ 匚w输入字符串的开始位|。如果设|了 RegExp 对象的Multiline 属性,^ 也匹?nbsp;’\n’ ?nbsp;’\r’ 之后的位|?nbsp;
Q?nbsp;匚w输入字符串的l束位置。如果设|了 RegExp 对象的Multiline 属性,Q?nbsp;也匹?nbsp;’\n’ ?nbsp;’\r’ 之前的位|?nbsp;
* 匚w前面的子表达式零ơ或多次?nbsp;
+ 匚w前面的子表达式一ơ或多次? {h?nbsp;{1,}?nbsp;
? 匚w前面的子表达式零ơ或一ơ? {h?nbsp;{0,1}?nbsp;
{n} n 是一个非负整敎ͼ匚w定的n ơ?/p>
{n,} n 是一个非负整敎ͼ臛_匚wn ơ?nbsp;
{n,m} m ?nbsp;n 均ؓ非负整数Q其中n <= m。最匹?nbsp;n ơ且最多匹?nbsp;m ơ。在逗号和两个数之间不能有空根{?/p>
? 当该字符紧跟在Q何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面Ӟ匚w模式是非贪婪的。非贪婪模式可能少的匹配所搜烦的字W串Q而默认的贪婪模式则尽可能多的匚w所搜烦的字W串?nbsp;
. 匚w?nbsp;"\n" 之外的Q何单个字W。要匚w包括 ’\n’ 在内的Q何字W,请用象 ’[.\n]’ 的模式?nbsp;
(pattern) 匚wpattern q获取这一匚w?nbsp;
(?:pattern) 匚wpattern 但不获取匚wl果Q也是说这是一个非获取匚wQ不q行存储供以后用?nbsp;
(?=pattern) 正向预查Q在M匚w pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用?nbsp;
(?!pattern) 负向预查Q与(?=pattern)作用相反
x|y 匚w x ?nbsp;y?nbsp;
[xyz] 字符集合?nbsp;
[^xyz] 负值字W集合?nbsp;
[a-z] 字符范围Q匹配指定范围内的Q意字W?nbsp;
[^a-z] 负值字W范_匚wM不在指定范围内的L字符?nbsp;
\b 匚w一个单词边界,也就是指单词和空格间的位|?/p>
\B 匚w非单词边界?nbsp;
\cx 匚w由x指明的控制字W?nbsp;
\d 匚w一个数字字W。等价于 [0-9]?nbsp;
\D 匚w一个非数字字符。等价于 [^0-9]?nbsp;
\f 匚w一个换늬。等价于 \x0c ?nbsp;\cL?nbsp;
\n 匚w一个换行符。等价于 \x0a ?nbsp;\cJ?nbsp;
\r 匚w一个回车符。等价于 \x0d ?nbsp;\cM?nbsp;
\s 匚wMI白字符Q包括空根{制表符、换늬{等。等价于[ \f\n\r\t\v]?nbsp;
\S 匚wM非空白字W。等价于 [^ \f\n\r\t\v]?nbsp;
\t 匚w一个制表符。等价于 \x09 ?nbsp;\cI?nbsp;
\v 匚w一个垂直制表符。等价于 \x0b ?nbsp;\cK?nbsp;
\w 匚w包括下划U的M单词字符。等价于’[A-Za-z0-9_]’?nbsp;
\W 匚wM非单词字W。等价于 ’[^A-Za-z0-9_]’?nbsp;
\xn 匚w nQ其?nbsp;n 为十六进制{义倹{十六进制{义值必Mؓ定的两个数字长?/p>
\num 匚w numQ其中num是一个正整数。对所获取的匹配的引用?nbsp;
\n 标识一个八q制转义值或一个后向引用。如?nbsp;\n 之前臛_ n 个获取的子表辑ּQ则 n 为后向引用。否则,如果 n 为八q制数字 (0-7)Q则 n Z个八q制转义倹{?nbsp;
\nm 标识一个八q制转义值或一个后向引用。如?nbsp;\nm 之前臛_有is preceded by at least nm 个获取得子表辑ּQ则 nm 为后向引用。如?nbsp;\nm 之前臛_?nbsp;n 个获取,?nbsp;n Z个后跟文?nbsp;m 的后向引用。如果前面的条g都不满Q若 n ?nbsp;m 均ؓ八进制数?nbsp;(0-7)Q则 \nm 匹配八q制转义?nbsp;nm?nbsp;
\nml 如果 n 为八q制数字 (0-3)Q且 m ?nbsp;l 均ؓ八进制数?nbsp;(0-7)Q则匚w八进制{义?nbsp;nml?nbsp;
\un 匚w nQ其?nbsp;n 是一个用四个十六q制数字表示的Unicode字符?nbsp;
匚w中文字符的正则表辑ּQ?nbsp;[u4e00-u9fa5]
匚w双字节字W?包括汉字在内)Q[^x00-xff]
应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?/p>
String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}
匚wI的正则表辑ּQn[s| ]*r
匚wHTML标记的正则表辑ּQ?<(.*)>.*|<(.*) />/
匚w首尾I格的正则表辑ּQ?^s*)|(s*Q?
应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现Q如下:
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*Q?/g, "");
}
利用正则表达式分解和转换IP地址Q?/p>
下面是利用正则表辑ּ匚wIP地址QƈIP地址转换成对应数值的JavascriptE序Q?/p>
function IP2V(ip)
{
re=/(d+).(d+).(d+).(d+)/g //匚wIP地址的正则表辑ּ
if(re.test(ip))
{
return RegExp.Q?*Math.pow(255,3))+RegExp.Q?*Math.pow(255,2))+RegExp.Q?*255+RegExp.Q?*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不过上面的程序如果不用正则表辑ּQ而直接用split函数来分解可能更单,E序如下Q?/p>
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是Q?+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匚w|址URL的正则表辑ּQhttp://( [w-]+.)+[w-]+(/[w- ./?%&=]*)?
利用正则表达式去除字串中重复的字W的法E序Q?/p>
var s="abacabefgeeii"
var s1=s.replace(/(.).*1/g,"Q?")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //l果为:abcefgi
我原来在CSDN上发贴寻求一个表辑ּ来实现去除重复字W的ҎQ最l没有找刎ͼq是我能惛_的最单的实现Ҏ。思\是用后向引用取出包括重复的字符Q再以重复的字符建立W二个表辑ּQ取C重复的字W,两者串q。这个方法对于字W顺序有要求的字W串可能不适用?/p>
得用正则表达式从URL地址中提取文件名的javascriptE序Q如下结果ؓpage1
s="http://www.9499.net/page1.htm"
s=s.replace(/(.*/){0,}([^.]+).*/ig,"Q?")
alert(s)
利用正则表达式限制网表单里的文本框输入内容Q?/p>
用正则表辑ּ限制只能输入中文Qonkeyup="value="/value.replace(/["^u4E00-u9FA5]/g,')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,'))"
用正则表辑ּ限制只能输入全角字符Q?nbsp;onkeyup="value="/value.replace(/["^uFF00-uFFFF]/g,')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,'))"
用正则表辑ּ限制只能输入数字Qonkeyup="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,'))"
具体实例Q?/p>
window.showModalDialog('areaAdd.jsp",window,'dialogWidth:245px;dialogHeight:210px;status:no;help:no;scroll:no;');
其中window参数如果是需要页面间传值就必须要,否则可ؓI。父子页面之间通讯也需要该参数。主面的iframe名称为areaIframeQ子面名称为areaAddQ父面通知子页面刷新用QareasIframe.location.href='areaIframe.jsp'。子面通知爉面刷C用:window.dialogArguments.areasIframe.areasReload();其中areasReload()是子面中的javascriptҎ
注意 iframe 的属性必M用前~ document.all 讉KQ例?document.all.iframeId.marginWidth?br />