// 表达式 .* 就是单个字符匹配任意次,即贪婪匹配。
// 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
// 肯定逆序环视 (?<=expresion) 子表达式能够匹配左侧文本
// 否定逆序环视 (?<!expresion) 子表达式不能匹配左侧文本
// 肯定顺序环视 (?=expresion) 子表达式能够匹配右侧文本
// 否定顺序环视 (?!expresion) 字表达式不能匹配右侧文本
// 结合上述 (?=.*expresion) 必须匹配左侧表达式
// . 匹配除换行符以外的任意字符
// \w 匹配字母或数字或下划线
// \s 匹配任意的空白符
// \d 匹配数字
// \b 匹配单词的开始或结束
// ^ 匹配字符串的开始
// $ 匹配字符串的结束
// * 重复零次或更多次
// + 重复一次或更多次
// ? 重复零次或一次
// {n} 重复n次
// {n,} 重复n次或更多次
// {n,m} 重复n到m次
// \W 匹配任意不是字母,数字,下划线,汉字的字符
// \S 匹配任意不是空白符的字符
// \D 匹配任意非数字的字符
// \B 匹配不是单词开头或结束的位置
// [^x] 匹配除了x以外的任意字符
// [^aeiou] 匹配除了aeiou这几个字母以外的任意字符
// /g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个
// /i 表示匹配的时候不区分大小写,这个跟其它语言的正则用法相同
// /m 表示多行匹配。什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号
// /s 与/m相对,单行模式匹配。
// /e 可执行模式,此为PHP专有参数,例如preg_replace函数。
// /x 忽略空白模式。
// 这些修饰符是可以混合使用的。例如 /ig、/ie等。
const regExp = {
//部分 字母、数字、+*-/_三种中的两种组成
part_letterNumberSymbol: /^(([0-9]+[a-zA-Z]+)|([0-9]+[\/\*\-\+\_]+)|([a-zA-Z]+[0-9]+)|([a-zA-Z]+[\/\*\-\+\_]+)|([\/\*\-\+\_]+[a-zA-Z]+)|([\/\*\-\+\_]+[0-9]+))([a-zA-Z]*[\/\*\-\+\_]*[0-9]*)+$/,
//必须 字母、数字
required_letterNumber: /^(?=.*[0-9])(?=.*[a-zA-Z])(.{2,})$/,
//只能 字母、数字
can_numberAndletter: /^[A-Za-z0-9]+$/,
// 只能 字母、数字、下划线
can_number_letter_Underline: /^[A-Za-z0-9\_]+$/,
//只能 字母
can_letter: /^[A-Za-z]+$/,
//只能 字母、汉字
can_numberAndcharacters: /^[a-zA-Z\u4e00-\u9fa5]+$/,
//只能 汉字、字母、数字
can_letterNumberChinese: /^[A-Za-z0-9\u4e00-\u9fa5]+$/,
//只能 汉字、字母、数字、下划线
can_charactersNumbersUnderscores: /^[\w\u4e00-\u9fa5]+$/,
//英文开头,只能英文小写,数字,下划线
startLetter_number_letter_Underline: /^[a-z]+[a-z0-9\_]*$/,
// 手机号正则,用途例如:验证手机号
phone: /^1\d{10}$/,
// 微信号码
wechat: /^[a-zA-Z]([-_a-zA-Z0-9]{5,20})+$/,
// 邮箱正则
email: /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/,
// IP地址
ip: /^(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)$/,
// 非数字开头
beginNoNumber: /^\D{1}.*$/,
// 经纬度
lonLat: /^[+-]?\d{1,3}(\.\d{1,6})?,[+-]?\d{1,3}(\.\d{1,6})?$/,
/* 合法uri*/
urlregex: /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/,
// 浮点数 可以带+-符号
floatNumber: /^[-+]?\d+(\.\d+)?$/,
//座机号码
landline: /^0[0-9]{2,3}-[0-9]{8}$/,
//车牌号
carPlate: /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/,
//支付宝
aliPay: /^[/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*][1\d{10}]$/,
//财付通
tenPay: /^[/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*][1\d{10}]$/,
//中国身份证
chinaIdCard: /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/,
//特殊字符
specialChar: /[`~!@#\$%\^\&\*\(\)_\+<>\?:"\{\},\.\\\/;'\[\]]/im
}
附表:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。