-RegExp 正则
Regular Expression
简写 RegExp
正则表达式Regular Expression
简写 RegExp
正则表达式Regular Expression
简写 RegExp
正则表达式
正则表达式中的特殊字符
(小数点)默认匹配除换行符之外的任何单个字符
1
2
3> (小数点)默认匹配除换行符之外的任何单个字符。
> 例如,/.n/ 将会匹配 "nay, an apple is on the tree" 中的 'an' 和 'on',但是不会匹配 'nay'。
>xxx
xxx
xxx
基本常见
1 | // ^ 开始位置 $ 结束位置 |
以JavaScript
为例
1 | /^[0-9]*$/g.test("123456798_fei"); // false |
1 | "123_fei_456_foo_789".replace(/[0-9]{3}/g,","); |
手机号变*
1 | // 中间4为变为*号 |
去除空格
1 | "bar ".replace(/(^\s*)|(\s*$)/g, "") |
前后不能是空格
1 | // 非空白字符,其S是大写, |
匹配二级目录
1 | let dirname = window.location.pathname; |
$符号正则(插入语)
插入语: 任何正则表达式的插入语都会使这部分匹配的副字符串被记忆
1 | // $1,$2,$3... 可以保留原来的内容 |
1 | // 将yyyy-mm-dd格式转换为年月日格式 |
可变正则
1 | //官方原话: 以下三种表达式都会创建相同的正则表达式: |
当表达式被赋值时,字面量形式提供正则表达式的编译(compilation)状态,当正则表达式保持为常量时使用字面量。例如当你在循环中使用字面量构造一个正则表达式时,正则表达式不会在每一次迭代中都被重新编译(recompiled)。
而正则表达式对象的构造函数,如 new RegExp('ab+c')
提供了正则表达式运行时编译(runtime compilation)。如果你知道正则表达式模式将会改变,或者你事先不知道什么模式,而是从另一个来源获取,如用户输入,这些情况都可以使用构造函数。
1 | // demo: |
1 | let str ='<span class="{width} {fei} {class}" data-tip="{width} {fei} {class}">替换花括号中内容</span>' |
不能有某个字符
1 | /^[^y]+$/.test("string") // 没有字符y返回true |
1 | /^[^\*]+$/.test("string") // 没有字符*号返回true |
常用正则
前后不能有空格
1
/^\S.*\S$|(^\S{0,1}\S$)/
密码由英文大小写和数字组成
1
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]+$/
只能是正整数
1
/^\d+$/
只能是正整数 或 保留两位的小数
1
/^\d+(\.\d{0,2})?$/
只能输入英文和数字
1
/^[a-zA-Z0-9]+$/
只能输入中文
1
/^[\u4E00-\u9FA5]+$/
只能输入英文
1
/^[a-zA-Z]+$/
正确的手机号码
1
/^1[0-9]{10,}/
银行卡号
1
/^([1-9]{1})(\d{14}|\d{18})$/
xx
1
xx
xx
xx
xx
xx
xx
xx
xx
xx
xx