正则表达式收藏(六)之常用的正则

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

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

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

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

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

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

匹配Email地址的正则表达式:^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$
(放在验证控件里面会有问题,用Regex类使用没有问题。有人知道原因么```知道的请告诉我。)

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

匹配网址URL的正则表达式:(((ht|f)tp(s?):\/\/)|(www\.[^ \[\]\(\)\n\r\t]+)|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})\/)([^ \[\]\(\),;"'<>\n\r\t]+)([^\. \[\]\(\),;"'<>\n\r\t])|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})

匹配非负整数(正整数 + 0): ^\d+$  
匹配正整数: ^[0-9]*[1-9][0-9]*$  
匹配非正整数(负整数 + 0): ^((-\d+)|(0+))$  
匹配负整数: ^-[0-9]*[1-9][0-9]*$  
匹配整数: ^-?\d+$    
匹配非负浮点数(正浮点数 + 0): ^\d+(\.\d+)?$  
匹配正浮点数: ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  
匹配非正浮点数(负浮点数 + 0): ^((-\d+(\.\d+)?)|(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+)?$  
匹配由26个英文字母组成的字符串: ^[A-Za-z]+$  
匹配由26个英文字母的大写组成的字符串 : ^[A-Z]+$  
匹配由26个英文字母的小写组成的字符串: ^[a-z]+$  
匹配由数字和26个英文字母组成的字符串: ^[A-Za-z0-9]+$  
匹配由数字、26个英文字母或者下划线组成的字符串: ^\w+$  
匹配url : ^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  

英语域名的正则表达式:^[a-zA-Z0-9\-]+\.(com|net|org|co.uk|org.uk|ltd.uk|plc.uk|me.uk|edu|mil|br.com|cn.com|eu.com|hu.com|no.com|qc.com|sa.com|se.com|se.net|us.com|uy.com|za.com|ac|co.ac|gv.ac|or.ac|ac.ac|af|am|as|at|ac.at|co.at|gv.at|or.at|asn.au|com.au|edu.au|org.au|net.au|be|ac.be|br|adm.br|adv.br|am.br|arq.br|art.br|bio.br|cng.br|cnt.br|com.br|ecn.br|eng.br|esp.br|etc.br|eti.br|fm.br|fot.br|fst.br|g12.br|gov.br|ind.br|inf.br|jor.br|lel.br|med.br|mil.br|net.br|nom.br|ntr.br|odo.br|org.br|ppg.br|pro.br|psc.br|psi.br|rec.br|slg.br|tmp.br|tur.br|tv.br|vet.br|zlg.br|ca|ab.ca|bc.ca|mb.ca|nb.ca|nf.ca|ns.ca|nt.ca|on.ca|pe.ca|qc.ca|sk.ca|yk.ca|cc|ac.cn|com.cn|edu.cn|gov.cn|net.cn|org.cn|cn|bj.cn|sh.cn|tj.cn|cq.cn|he.cn|nm.cn|ln.cn|jl.cn|hl.cn|js.cn|zj.cn|ah.cn|hb.cn|hn.cn|gd.cn|gx.cn|hi.cn|sc.cn|gz.cn|yn.cn|xz.cn|sn.cn|gs.cn|qh.cn|nx.cn|xj.cn|tw.cn|hk.cn|mo.cn|cx|cz|de|dk|fo|com.ec|org.ec|net.ec|mil.ec|fin.ec|med.ec|gov.ec|fr|tm.fr|com.fr|asso.fr|presse.fr|gf|gs|co.il|org.il|net.il|ac.il|k12.il|gov.il|muni.il|ac.in|co.in|ernet.in|gov.in|net.in|res.in|is|it|ac.jp|co.jp|go.jp|or.jp|ne.jp|ac.kr|co.kr|go.kr|ne.kr|nm.kr|or.kr|re.kr|li|lt|lu|asso.mc|tm.mc|com.mm|org.mm|net.mm|edu.mm|gov.mm|ms|mx|com.mx|org.mx|net.mx|edu.mx|gov.mx|gob.mx|nl|no|nu|pl|com.pl|net.pl|org.pl|aid.pl|agro.pl|atm.pl|auto.pl|biz.pl|edu.pl|gmina.pl|gsm.pl|info.pl|mail.pl|miasta.pl|media.pl|mil.pl|nom.pl|pc.pl|priv.pl|realestate.pl|rel.pl|shop.pl|sklep.pl|sos.pl|targi.pl|tm.pl|tourism.pl|travel.pl|turystyka.pl|pt|com.ro|org.ro|store.ro|tm.ro|firm.ro|www.ro|arts.ro|rec.ro|info.ro|nom.ro|nt.ro|ru|com.ru|net.ru|org.ru|se|si|com.sg|org.sg|net.sg|gov.sg|sk|st|tc|tf|ac.th|co.th|go.th|mi.th|net.th|or.th|tj|tm|to|bbs.tr|com.tr|edu.tr|gov.tr|k12.tr|mil.tr|net.tr|org.tr|com.tw|org.tw|net.tw|ac.uk|uk.co|uk.com|uk.net|gb.com|gb.net|vg|ac.za|alt.za|co.za|edu.za|gov.za|mil.za|net.za|ngo.za|nom.za|org.za|school.za|tm.za|web.za|sh|kz|ch|info|ua|biz|ws|gov|tv|name|pro|ie|com.hk|org.hk|net.hk|edu.hk|us|tk|cd|aero|gr|by|ad|lv|eu.lv|bz|es|jp|cl|ag|uni.cc|COM|NET|ORG|CO.UK|ORG.UK|LTD.UK|PLC.UK|ME.UK|EDU|MIL|BR.COM|CN.COM|EU.COM|HU.COM|NO.COM|QC.COM|SA.COM|SE.COM|SE.NET|US.COM|UY.COM|ZA.COM|AC|CO.AC|GV.AC|OR.AC|AC.AC|AF|AM|AS|AT|AC.AT|CO.AT|GV.AT|OR.AT|ASN.AU|COM.AU|EDU.AU|ORG.AU|NET.AU|BE|AC.BE|BR|ADM.BR|ADV.BR|AM.BR|ARQ.BR|ART.BR|BIO.BR|CNG.BR|CNT.BR|COM.BR|ECN.BR|ENG.BR|ESP.BR|ETC.BR|ETI.BR|FM.BR|FOT.BR|FST.BR|G12.BR|GOV.BR|IND.BR|INF.BR|JOR.BR|LEL.BR|MED.BR|MIL.BR|NET.BR|NOM.BR|NTR.BR|ODO.BR|ORG.BR|PPG.BR|PRO.BR|PSC.BR|PSI.BR|REC.BR|SLG.BR|TMP.BR|TUR.BR|TV.BR|VET.BR|ZLG.BR|CA|AB.CA|BC.CA|MB.CA|NB.CA|NF.CA|NS.CA|NT.CA|ON.CA|PE.CA|QC.CA|SK.CA|YK.CA|CC|AC.CN|COM.CN|EDU.CN|GOV.CN|NET.CN|ORG.CN|CN|BJ.CN|SH.CN|TJ.CN|CQ.CN|HE.CN|NM.CN|LN.CN|JL.CN|HL.CN|JS.CN|ZJ.CN|AH.CN|HB.CN|HN.CN|GD.CN|GX.CN|HI.CN|SC.CN|GZ.CN|YN.CN|XZ.CN|SN.CN|GS.CN|QH.CN|NX.CN|XJ.CN|TW.CN|HK.CN|MO.CN|CX|CZ|DE|DK|FO|COM.EC|ORG.EC|NET.EC|MIL.EC|FIN.EC|MED.EC|GOV.EC|FR|TM.FR|COM.FR|ASSO.FR|PRESSE.FR|GF|GS|CO.IL|ORG.IL|NET.IL|AC.IL|K12.IL|GOV.IL|MUNI.IL|AC.IN|CO.IN|ERNET.IN|GOV.IN|NET.IN|RES.IN|IS|IT|AC.JP|CO.JP|GO.JP|OR.JP|NE.JP|AC.KR|CO.KR|GO.KR|NE.KR|NM.KR|OR.KR|RE.KR|LI|LT|LU|ASSO.MC|TM.MC|COM.MM|ORG.MM|NET.MM|EDU.MM|GOV.MM|MS|MX|COM.MX|ORG.MX|NET.MX|EDU.MX|GOV.MX|GOB.MX|NL|NO|NU|PL|COM.PL|NET.PL|ORG.PL|AID.PL|AGRO.PL|ATM.PL|AUTO.PL|BIZ.PL|EDU.PL|GMINA.PL|GSM.PL|INFO.PL|MAIL.PL|MIASTA.PL|MEDIA.PL|MIL.PL|NOM.PL|PC.PL|PRIV.PL|REALESTATE.PL|REL.PL|SHOP.PL|SKLEP.PL|SOS.PL|TARGI.PL|TM.PL|TOURISM.PL|TRAVEL.PL|TURYSTYKA.PL|PT|COM.RO|ORG.RO|STORE.RO|TM.RO|FIRM.RO|WWW.RO|ARTS.RO|REC.RO|INFO.RO|NOM.RO|NT.RO|RU|COM.RU|NET.RU|ORG.RU|SE|SI|COM.SG|ORG.SG|NET.SG|GOV.SG|SK|ST|TC|TF|AC.TH|CO.TH|GO.TH|MI.TH|NET.TH|OR.TH|TJ|TM|TO|BBS.TR|COM.TR|EDU.TR|GOV.TR|K12.TR|MIL.TR|NET.TR|ORG.TR|COM.TW|ORG.TW|NET.TW|AC.UK|UK.CO|UK.COM|UK.NET|GB.COM|GB.NET|VG|AC.ZA|ALT.ZA|CO.ZA|EDU.ZA|GOV.ZA|MIL.ZA|NET.ZA|NGO.ZA|NOM.ZA|ORG.ZA|SCHOOL.ZA|TM.ZA|WEB.ZA|SH|KZ|CH|INFO|UA|BIZ|WS|GOV|TV|NAME|PRO|IE|COM.HK|ORG.HK|NET.HK|EDU.HK|US|TK|CD|AERO|GR|BY|AD|LV|EU.LV|BZ|ES|JP|CL|AG|UNI.CC)$

中文域名的正则表达式:^[\u4e00-\u9fa5]+\.(com|net|org|co.uk|org.uk|ltd.uk|plc.uk|me.uk|edu|mil|br.com|cn.com|eu.com|hu.com|no.com|qc.com|sa.com|se.com|se.net|us.com|uy.com|za.com|ac|co.ac|gv.ac|or.ac|ac.ac|af|am|as|at|ac.at|co.at|gv.at|or.at|asn.au|com.au|edu.au|org.au|net.au|be|ac.be|br|adm.br|adv.br|am.br|arq.br|art.br|bio.br|cng.br|cnt.br|com.br|ecn.br|eng.br|esp.br|etc.br|eti.br|fm.br|fot.br|fst.br|g12.br|gov.br|ind.br|inf.br|jor.br|lel.br|med.br|mil.br|net.br|nom.br|ntr.br|odo.br|org.br|ppg.br|pro.br|psc.br|psi.br|rec.br|slg.br|tmp.br|tur.br|tv.br|vet.br|zlg.br|ca|ab.ca|bc.ca|mb.ca|nb.ca|nf.ca|ns.ca|nt.ca|on.ca|pe.ca|qc.ca|sk.ca|yk.ca|cc|ac.cn|com.cn|edu.cn|gov.cn|net.cn|org.cn|cn|bj.cn|sh.cn|tj.cn|cq.cn|he.cn|nm.cn|ln.cn|jl.cn|hl.cn|js.cn|zj.cn|ah.cn|hb.cn|hn.cn|gd.cn|gx.cn|hi.cn|sc.cn|gz.cn|yn.cn|xz.cn|sn.cn|gs.cn|qh.cn|nx.cn|xj.cn|tw.cn|hk.cn|mo.cn|cx|cz|de|dk|fo|com.ec|org.ec|net.ec|mil.ec|fin.ec|med.ec|gov.ec|fr|tm.fr|com.fr|asso.fr|presse.fr|gf|gs|co.il|org.il|net.il|ac.il|k12.il|gov.il|muni.il|ac.in|co.in|ernet.in|gov.in|net.in|res.in|is|it|ac.jp|co.jp|go.jp|or.jp|ne.jp|ac.kr|co.kr|go.kr|ne.kr|nm.kr|or.kr|re.kr|li|lt|lu|asso.mc|tm.mc|com.mm|org.mm|net.mm|edu.mm|gov.mm|ms|mx|com.mx|org.mx|net.mx|edu.mx|gov.mx|gob.mx|nl|no|nu|pl|com.pl|net.pl|org.pl|aid.pl|agro.pl|atm.pl|auto.pl|biz.pl|edu.pl|gmina.pl|gsm.pl|info.pl|mail.pl|miasta.pl|media.pl|mil.pl|nom.pl|pc.pl|priv.pl|realestate.pl|rel.pl|shop.pl|sklep.pl|sos.pl|targi.pl|tm.pl|tourism.pl|travel.pl|turystyka.pl|pt|com.ro|org.ro|store.ro|tm.ro|firm.ro|www.ro|arts.ro|rec.ro|info.ro|nom.ro|nt.ro|ru|com.ru|net.ru|org.ru|se|si|com.sg|org.sg|net.sg|gov.sg|sk|st|tc|tf|ac.th|co.th|go.th|mi.th|net.th|or.th|tj|tm|to|bbs.tr|com.tr|edu.tr|gov.tr|k12.tr|mil.tr|net.tr|org.tr|com.tw|org.tw|net.tw|ac.uk|uk.co|uk.com|uk.net|gb.com|gb.net|vg|ac.za|alt.za|co.za|edu.za|gov.za|mil.za|net.za|ngo.za|nom.za|org.za|school.za|tm.za|web.za|sh|kz|ch|info|ua|biz|ws|gov|tv|name|pro|ie|com.hk|org.hk|net.hk|edu.hk|us|tk|cd|aero|gr|by|ad|lv|eu.lv|bz|es|jp|cl|ag|uni.cc|COM|NET|ORG|CO.UK|ORG.UK|LTD.UK|PLC.UK|ME.UK|EDU|MIL|BR.COM|CN.COM|EU.COM|HU.COM|NO.COM|QC.COM|SA.COM|SE.COM|SE.NET|US.COM|UY.COM|ZA.COM|AC|CO.AC|GV.AC|OR.AC|AC.AC|AF|AM|AS|AT|AC.AT|CO.AT|GV.AT|OR.AT|ASN.AU|COM.AU|EDU.AU|ORG.AU|NET.AU|BE|AC.BE|BR|ADM.BR|ADV.BR|AM.BR|ARQ.BR|ART.BR|BIO.BR|CNG.BR|CNT.BR|COM.BR|ECN.BR|ENG.BR|ESP.BR|ETC.BR|ETI.BR|FM.BR|FOT.BR|FST.BR|G12.BR|GOV.BR|IND.BR|INF.BR|JOR.BR|LEL.BR|MED.BR|MIL.BR|NET.BR|NOM.BR|NTR.BR|ODO.BR|ORG.BR|PPG.BR|PRO.BR|PSC.BR|PSI.BR|REC.BR|SLG.BR|TMP.BR|TUR.BR|TV.BR|VET.BR|ZLG.BR|CA|AB.CA|BC.CA|MB.CA|NB.CA|NF.CA|NS.CA|NT.CA|ON.CA|PE.CA|QC.CA|SK.CA|YK.CA|CC|AC.CN|COM.CN|EDU.CN|GOV.CN|NET.CN|ORG.CN|CN|BJ.CN|SH.CN|TJ.CN|CQ.CN|HE.CN|NM.CN|LN.CN|JL.CN|HL.CN|JS.CN|ZJ.CN|AH.CN|HB.CN|HN.CN|GD.CN|GX.CN|HI.CN|SC.CN|GZ.CN|YN.CN|XZ.CN|SN.CN|GS.CN|QH.CN|NX.CN|XJ.CN|TW.CN|HK.CN|MO.CN|CX|CZ|DE|DK|FO|COM.EC|ORG.EC|NET.EC|MIL.EC|FIN.EC|MED.EC|GOV.EC|FR|TM.FR|COM.FR|ASSO.FR|PRESSE.FR|GF|GS|CO.IL|ORG.IL|NET.IL|AC.IL|K12.IL|GOV.IL|MUNI.IL|AC.IN|CO.IN|ERNET.IN|GOV.IN|NET.IN|RES.IN|IS|IT|AC.JP|CO.JP|GO.JP|OR.JP|NE.JP|AC.KR|CO.KR|GO.KR|NE.KR|NM.KR|OR.KR|RE.KR|LI|LT|LU|ASSO.MC|TM.MC|COM.MM|ORG.MM|NET.MM|EDU.MM|GOV.MM|MS|MX|COM.MX|ORG.MX|NET.MX|EDU.MX|GOV.MX|GOB.MX|NL|NO|NU|PL|COM.PL|NET.PL|ORG.PL|AID.PL|AGRO.PL|ATM.PL|AUTO.PL|BIZ.PL|EDU.PL|GMINA.PL|GSM.PL|INFO.PL|MAIL.PL|MIASTA.PL|MEDIA.PL|MIL.PL|NOM.PL|PC.PL|PRIV.PL|REALESTATE.PL|REL.PL|SHOP.PL|SKLEP.PL|SOS.PL|TARGI.PL|TM.PL|TOURISM.PL|TRAVEL.PL|TURYSTYKA.PL|PT|COM.RO|ORG.RO|STORE.RO|TM.RO|FIRM.RO|WWW.RO|ARTS.RO|REC.RO|INFO.RO|NOM.RO|NT.RO|RU|COM.RU|NET.RU|ORG.RU|SE|SI|COM.SG|ORG.SG|NET.SG|GOV.SG|SK|ST|TC|TF|AC.TH|CO.TH|GO.TH|MI.TH|NET.TH|OR.TH|TJ|TM|TO|BBS.TR|COM.TR|EDU.TR|GOV.TR|K12.TR|MIL.TR|NET.TR|ORG.TR|COM.TW|ORG.TW|NET.TW|AC.UK|UK.CO|UK.COM|UK.NET|GB.COM|GB.NET|VG|AC.ZA|ALT.ZA|CO.ZA|EDU.ZA|GOV.ZA|MIL.ZA|NET.ZA|NGO.ZA|NOM.ZA|ORG.ZA|SCHOOL.ZA|TM.ZA|WEB.ZA|SH|KZ|CH|INFO|UA|BIZ|WS|GOV|TV|NAME|PRO|IE|COM.HK|ORG.HK|NET.HK|EDU.HK|US|TK|CD|AERO|GR|BY|AD|LV|EU.LV|BZ|ES|JP|CL|AG|UNI.CC)$

匹配日期的完美正则(一般用于判断单个的日期验证):
^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3-9]|1[0-2])[\/\-\.](?:29|30))(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1,3,5,7,8]|1[02])[\/\-\.]31)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])[\/\-\.]0?2[\/\-\.]29)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:16|[2468][048]|[3579][26])00[\/\-\.]0?2[\/\-\.]29)(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$|^(?:(?:1[6-9]|[2-9]\d)?\d{2}[\/\-\.](?:0?[1-9]|1[0-2])[\/\-\.](?:0?[1-9]|1\d|2[0-8]))(?: (?:0?\d|1\d|2[0-3])\:(?:0?\d|[1-5]\d)\:(?:0?\d|[1-5]\d)(?: \d{1,3})?)?$


匹配日期验证:(一般用于在大量字符串中查询日期 格式:年[四位](任意字符)月[两位](任意字符)日[两位]   解决闰年的日期问题)
((((19|20)(([02468][048])|([13579][26]))\D{1}02\D?29))|((20[0-9][0-9])|(19[0-9][0-9]))\D{1}((((0[1-9])|(1[0-2]))\D{1}((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))\D{1}31)|(((01,3-9])|(1[0-2]))\D{1}(29|30)))))

匹配日期验证:(一般用于在大量字符串中查询日期 格式:年[四位](任意字符)月[一位-两位](任意字符)日[一位-两位]  )
(\d{4})\D{1}(0{0,1}[1-9]|1[0-2])\D{1}([12]\d|0{0,1}[1-9]|3[01])  如果要加上可选时间 接着后面加 (\D{1}([01]\d|2[0-3])\D{1}([0-5]\d)\D{1}([0-5]\d)?)?

匹配日期验证:(一般用于在大量字符串中查询日期 格式:月(任意字符)[一位或者多位]/日(任意字符)[一位或者多位]/年[四位]
([0]?\d|[1][0-2]).+([0-2]?\d|[3][0-1]).+([2][0-9]|[1][6-9])\d{2}
PS:这个用于查找 whois 这样BT的日期形式 比如baidu的 expires on..............: sat, oct 11, 2014  这样的日期先把oct转成数字以后用此正则可以找出来。

扩展一下:([0-2]?\d|[3][0-1]).+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec).+([2][0-9]|[1][6-9])\d{2} 
                        这样适合   Record expires on 04-May-2011.
                                  Record created on 03-May-1996.
                                  Database last updated on 15-Aug-2006 04:09:00 EDT.


上述日期还需要加上时间 在后面加段  “空格 (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d ”即可。


利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文: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,''))"

 1function regInput(obj, reg, inputStr)
 2{   
 3    // 从当前文本选中区中创建 TextRange 对象,或从控件选中区中创建 controlRange 集合。
 4    var docSel    = document.selection.createRange();
 5    // 如果父控件不是input就返回
 6    if (docSel.parentElement().tagName != "INPUT")    
 7        return false;
 8    // 返回 TextRange 的副本。
 9    oSel = docSel.duplicate();
10    oSel.text = "";
11    // 创建一个 obj 的 TextRange 对象
12    var srcRange = obj.createTextRange();
13    // 设置一个范围终点根据其它范围终点。
14    oSel.setEndPoint("StartToStart", srcRange)
15    var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
16    // 返回一个 Boolean 值,它指出在被查找的字符串中是否存在。
17    return reg.test(str)
18}

19
20function regInput(obj, reg, inputStr, inputCode)
21{
22    // 判断如果是功能键就返回真
23    // 8 back 9 tab 16 shift 17 ctrl 45 insert 46 del 35 end 36 home 37 ← 38 ↑ 39 → 40 ↓
24    if(inputCode == 8 || inputCode == 9 || inputCode == 16 || inputCode == 17 || inputCode == 46 || inputCode == 45 || inputCode == 35 || inputCode == 36 || inputCode == 37 || inputCode == 38 || inputCode == 39 || inputCode == 40)
25    {
26        return true;
27    }

28    // 从当前文本选中区中创建 TextRange 对象,或从控件选中区中创建 controlRange 集合。
29    var docSel    = document.selection.createRange();
30    // 如果父控件不是input就返回
31    if (docSel.parentElement().tagName != "INPUT")    
32        return false;
33    // 返回 TextRange 的副本。
34    oSel = docSel.duplicate();
35    oSel.text = "";
36    // 创建一个 obj 的 TextRange 对象
37    var srcRange = obj.createTextRange();
38    // 设置一个范围终点根据其它范围终点。
39    oSel.setEndPoint("StartToStart", srcRange)
40    var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
41    // 返回一个 Boolean 值,它指出在被查找的字符串中是否存在。
42    return reg.test(str)
43}

44
45function assignKeys()
46{
47    var keyboard = document.getElementById("divSignIn");
48    var inputKeys = keyboard.getElementsByTagName("input");    
49    if(inputKeys)
50    {
51        var length = inputKeys.length;
52         
53        for(var i=0;i<length;i++)
54        {
55            var key = inputKeys[i];
56            key.onkeydown = function(){return regInput(this,/^\w*$/,String.fromCharCode(event.keyCode),event.keyCode)};
57            key.onpaste = function(){return regInput(this,/^\w*$/,window.clipboardData.getData('Text'))};
58            key.ondrop = function(){return regInput(this,/^\w*$/,event.dataTransfer.getData('Text'))};
59        }

60    }
            
61}

62

posted on 2006-11-01 09:04  Sherrys  阅读(601)  评论(0编辑  收藏  举报

导航