携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天
5.2 全局搜索
g 修饰符用于执行全局匹配 (会查找所有匹配,不会在查找到第一个匹配时就停止)。 例如正则表达式 /.(at)/g,表示: 除换行符之外的任意字符,后跟小写字母 a,后跟小写字母 t。 因为我们在正则表达式的末尾使用了 g 标记,它会从整个输入字符串中找到每个匹配项。
".(at)" => The fat cat sat on the mat.
"/.(at)/g" => The fat cat sat on the mat.
5.3 多行匹配
m 修饰符被用来执行多行的匹配。正如我们前面讨论过的 (^, $),使用定位符来检查匹配字符是输入字符串开始或者结束。但是我们希望每一行都使用定位符,所以我们就使用 m 修饰符。 例如正则表达式 /at(.)?$/gm,表示: 小写字母 a,后跟小写字母 t,匹配除了换行符以外任意字符零次或一次。而且因为 m 标记,现在正则表达式引擎匹配字符串中每一行的末尾。
"/.at(.)?$/" => The fat
cat sat
on the mat.
"/.at(.)?$/gm" => The fat
cat sat
on the mat.
常用正则表达式
- 正整数:
^\d+$ - 负整数:
^-\d+$ - 电话号码:
^+?[\d\s]{3,}$ - 电话代码:
^+?[\d\s]+(?[\d\s]{10,}$ - 整数:
^-?\d+$ - 用户名:
^[\w\d_.]{4,16}$ - 字母数字字符:
^[a-zA-Z0-9]*$ - 带空格的字母数字字符:
^[a-zA-Z0-9 ]*$ - 密码:
^(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$ - 电子邮件:
^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4})*$ - IPv4 地址:
^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$ - 小写字母:
^([a-z])*$ - 大写字母:
^([A-Z])*$ - 网址:
^(((http|https|ftp)://)?([[a-zA-Z0-9]-.])+(.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]/+=%&_.~?-]*))*$ - VISA 信用卡号码:
^(4[0-9]{12}(?:[0-9]{3})?)*$ - 日期 (MM/DD/YYYY) :
^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}$ - 日期 (YYYY/MM/DD) :
^(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])$ - 万事达信用卡号码:
^(5[1-5][0-9]{14})*$