关于正则表达式:正则规则与常用正则

11次阅读

共计 2753 个字符,预计需要花费 7 分钟才能阅读完成。

// 表达式 .* 就是单个字符匹配任意次,即贪心匹配。// 表达式 .*? 是满足条件的状况只匹配一次,即最小匹配.
// 必定逆序环视    (?<=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
}
正文完
 0