正则表达式及限制字数
"^/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
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/  // 年-⽉-⽇
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/  // ⽉/⽇/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"  //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"    //电话号码
"^(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])$"  //IP地址
匹配中⽂字符的正则表达式: [/u4e00-/u9fa5]
匹配双字节字符(包括汉字在内):[^/x00-/xff]
匹配空⾏的正则表达式:/n[/s| ]*/r
匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/
匹配⾸尾空格的正则表达式:(^/s*)|(/s*$)
匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
匹配⽹址URL的正则表达式:^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(/d{3}-|/d{4}-)?(/d{8}|/d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
元字符及其在正则表达式上下⽂中的⾏为:
/ 将下⼀个字符标记为⼀个特殊字符、或⼀个原义字符、或⼀个后向引⽤、或⼀个⼋进制转义符。
^ 匹配输⼊字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’/n’ 或 ’/r’ 之后的位置。
$ 匹配输⼊字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’/n’ 或 ’/r’ 之前的位置。
* 匹配前⾯的⼦表达式零次或多次。
+ 匹配前⾯的⼦表达式⼀次或多次。+ 等价于 {1,}。
匹配前⾯的⼦表达式零次或⼀次。 等价于 {0,1}。
{n} n 是⼀个⾮负整数,匹配确定的n 次。
{n,} n 是⼀个⾮负整数,⾄少匹配n 次。
{n,m} m 和 n 均为⾮负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有
空格。
当该字符紧跟在任何⼀个其他限制符 (*, +, , {n}, {n,}, {n,m}) 后⾯时,匹配模式是⾮贪婪的。⾮贪婪模式尽可能少的匹配所搜索的字符串,⽽默认的贪婪模式则尽可能多的匹配所搜索的字符串。
. 匹配除 "/n" 之外的任何单个字符。要匹配包括 ’/n’ 在内的任何字符,请使⽤象 ’[./n]’ 的模式。
(pattern) 匹配pattern 并获取这⼀匹配。
(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是⼀个⾮获取匹配,不进⾏存储供以后使⽤。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查字符串。这是⼀个⾮获取匹配,也就是说,该匹配不需要获取供以后使⽤。
后使⽤。
(?!pattern) 负向预查,与(?=pattern)作⽤相反
x|y 匹配 x 或 y。
[xyz] 字符集合。
[^xyz] 负值字符集合。
[a-z] 字符范围,匹配指定范围内的任意字符。
[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
/b 匹配⼀个单词边界,也就是指单词和空格间的位置。
/B 匹配⾮单词边界。
/cx 匹配由x指明的控制字符。
/d 匹配⼀个数字字符。等价于 [0-9]。
/D 匹配⼀个⾮数字字符。等价于 [^0-9]。
/f 匹配⼀个换页符。等价于 /x0c 和 /cL。
/n 匹配⼀个换⾏符。等价于 /x0a 和 /cJ。
/r 匹配⼀个回车符。等价于 /x0d 和 /cM。
/
s 匹配任何空⽩字符,包括空格、制表符、换页符等等。等价于[ /f/n/r/t/v]。
/S 匹配任何⾮空⽩字符。等价于 [^ /f/n/r/t/v]。
/t 匹配⼀个制表符。等价于 /x09 和 /cI。
/v 匹配⼀个垂直制表符。等价于 /x0b 和 /cK。
/w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
/W 匹配任何⾮单词字符。等价于 ’[^A-Za-z0-9_]’。
/xn 匹配 n,其中 n 为⼗六进制转义值。⼗六进制转义值必须为确定的两个数字长。
/num 匹配 num,其中num是⼀个正整数。对所获取的匹配的引⽤。
/n 标识⼀个⼋进制转义值或⼀个后向引⽤。如果 /n 之前⾄少 n 个获取的⼦表达式,则 n 为后向引⽤。否则,如果 n 为⼋进制数字 (0-7),则 n 为⼀个⼋进制转义值。
/nm 标识⼀个⼋进制转义值或⼀个后向引⽤。如果 /nm 之前⾄少有is preceded by at least nm 个获取得⼦表达式,则 nm 为后向引⽤。如果 /nm 之前⾄少有 n 个获取,则 n 为⼀个后跟⽂字 m 的后向引⽤。
如果前⾯的条件都不满⾜,若 n 和 m 均为⼋进制数字 (0-7),则 /nm 将匹配⼋进制转义值 nm。
/nml 如果 n 为⼋进制数字 (0-3),且 m 和 l 均为⼋进制数字 (0-7),则匹配⼋进制转义值 nml。
/un 匹配 n,其中 n 是⼀个⽤四个⼗六进制数字表⽰的Unicode字符。
匹配中⽂字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空⾏的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/
匹配⾸尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
利⽤正则表达式限制⽹页表单⾥的⽂本框输⼊内容:
⽤正则表达式限制只能输⼊中⽂:οnkeyup="place(/[^u4E00-u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^u4E00-u9FA5]/g,''))"
⽤正则表达式限制只能输⼊全⾓字符: οnkeyup="place(/[^uFF00-uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^uFF00-uFFFF]/g,''))"
⽤正则表达式限制只能输⼊数字:οnkeyup="place(/[^d]/g,'')
"onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^d]/g,''))"
⽤正则表达式限制只能输⼊数字和英⽂:οnkeyup="place(/[W]/g,'')
"onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^d]/g,''))"
⽅法1:
function  keyup(num,obj,show)
{
var  intopictitleinfos  =  ElementById(show);
var  input  =  ElementById(obj);
var  last  =  place(/[^/x00-/xff]/g,"aa").length;
if(place(/[^/x00-/xff]/g,"aa").length <num)  {
intopictitleinfos.innerText="⽬前为"+place(/[^/x00-/xff]/g,"aa").length+"个字符,还可以输⼊"+last+"个";            }
else  {intopictitleinfos.innerText="已经输⼊了50个汉字或者100个半⾓英⽂,不能再输⼊了!";
}
}
js正则表达式验证数字和字母}
<input type="text" maxlength=100 οnkeyup="keyup(100,this, "intopictitleinfo ")" onbeforepaste="keyup(100,this, "intopictitleinfo ")" / >
<span id="intopictitleinfo" >请控制在50个汉字以内 [ 100个半⾓英⽂ ] </span >