验证 | 正则表达式 |
^[0-9]*$ 或者 ^\d*$ | |
n位的数字 | ^\d{n}$ |
至少n位的数字 | ^\d{n,}$ |
m-n位的数字 | ^\d{m,n}$ |
零或非零开头的数字 | ^(0|[1-9][0-9]*)$ |
有两位小数的正实数 | ^[0-9]+(.[0-9]{2})?$ |
有1-3位小数的正实数 | ^[0-9]+(.[0-9]{1,3})?$ |
整数 | ^-?\d+$ |
非零的正整数 | ^\+?[1-9][0-9]*$ |
非零的负整数 | ^\-[1-9][0-9]*$ |
非负整数(正整数 + 0) | ^\-[1-9][0-9]*$ |
非正整数(负整数 + 0) | ^((-\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-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) | ^\d+(\.\d+)?$ |
长度为3的字符 | ^.{3}$ |
^[A-Za-z]+$ | |
由26个大写英文字母组成的字符串 | ^[A-Z]+$ |
由26个小写英文字母组成的字符串 | ^[a-z]+$ |
由数字和26个英文字母组成的字符串 | |
由数字、26个英文字母或者下划线组成的字符串 | |
密码验证,以字母开头,只能包含字符、数字和下划线,长度在6-18之间。 | ^[a-zA-Z]\w{5,17}$ |
特殊字符验证,是否含有 ^%&',;=?$\" 等字符 | [^%&',;=?$\x22]+ |
/^[\u4E00-\u9FA5]*$/ | |
双字节字符(包括汉字中文标点符号在内) | /^[^\x00-\xff]*$/ |
空白行 | \n\s*\r |
首尾空白字符 | ^\s*|\s*$ |
Email地址 | /^\w+@\w+\.\w+$/ |
URL地址 | /[a-zA-z]+:\/\/[\S]*/ |
网络链接 | (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? |
图片链接 | (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? |
ip地址 | \d+\.\d+\.\d+\.\d+ |
手机号码 | /^[1][0-9]{10}$/ |
电话号码 | /^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}(-\d{3})*$/ |
身份证号(15位或18位) | /^(\d{15}|\d{17}([0-9xX]))$/ |
中国邮政编码(6位) | |
HTML标记 | < (\S*?)[^>]*>.*?|< .*? /> |
腾讯QQ号 | [1-9][0-9]{4,} |
一年的12个月 | ^(0?[1-9]|1[0-2])$ |
^((0?[1-9])|((1|2)[0-9])|30|31)$ | |
短日期格式:"YYYY-MM-dd"|| "YYYY/MM/dd" | |
长日期格式:"YYYY-MM-dd HH:mm:ss"|| "YYYY/MM/dd HH:mm:ss" | ^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$ |
/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
正则表达式对象的属性及方法
预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext, rightContext和$1到$9。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字,并且,这两个名字指向同一个值。(JavaScript模拟perl的正则表达式)
正则表达式对象的属性
属性 | 含义 |
$1...$9 | 如果它(们)存在,是匹配到的子串 |
$_ | 参见input |
$* | 参见multiline |
$& | 参见lastMatch |
$+ | 参见lastParen |
$` | 参见leftContext |
$'' | 参见rightContext |
constructor | 创建一个对象的一个特殊的函数原型 |
global | 是否在整个串中匹配(bool型) |
ignoreCase | 匹配时是否忽略大小写(bool型) |
input | 被匹配的串 |
lastIndex | 最后一次匹配的索引 |
lastParen | 最后一个括号括起来的子串 |
leftContext | 最近一次匹配以左的子串 |
multiline | 是否进行多行匹配(bool型) |
prototype | 允许附加属性给对象 |
rightContext | 最近一次匹配以右的子串 |
source | 正则表达式模式 |
lastIndex | 最后一次匹配的索引 |
正则表达式对象的方法
方法 | 含义 |
compile | 正则表达式比较 |
exec | 执行查找 |
test | 进行匹配 |
toSource | 返回特定对象的定义(literal representing),其值可用来创建一个新的对象。重载Object.toSource方法得到的。 |
toString | 返回特定对象的串。重载Object.toString方法得到的。 |
valueOf | 返回特定对象的原始值。重载Object.valueOf方法得到 |
例子
<script language = "JavaScript">
var myReg = /(w+)s(w+)/;
var str = "John Smith";
var newstr = str.replace(myReg, "$2, $1");
document.write(newstr);
</script>
将输出"Smith, John"