JS正则基础
661 字
3 分钟
JS正则基础
正则的作用
正则是来处理复杂字符串的
1.正则的匹配
- test返回值=>true,false
2.正则的捕获
- 把匹配内容找出来,exec方法
var reg=/9/g;正则的组成
-
1.元字符,写在//中间的全是元字符
-
2.修饰符 写在//后面
- g(全局匹配),i(忽略大小写),m(换行匹配) 注意<一个元字符只能匹配一个字符>一个元字符只能匹配一个字符>
-
1-1.特殊意义的元字符
-
\转义字符,一般都是把具有特殊意义的字符变成仅仅是本身意思的字符
var str='I\'m a person'; var reg=/./; reg.test(str);//true var reg=/\./; reg.test("1.1");//true-
^以什么什么开始
var reg=/^1/; reg.test("123445464");//true reg.test("0001");//false-
$以什么什么结尾
var reg=/m$/;reg.test("mq");//falsereg.test("qm");//true应用
var reg=/^6$/;//只匹配"6"var reg=/^\d$/;//只匹配一个0-9中的任意一位数的字符串-
\d匹配0-9中任意一个字符
-
\D除了\d以外任意一个字符
-
\w匹配0-9,a-z,A-Z,_这63个中的任意一个
-
\W匹配除了\w以外的任意一个
-
\n匹配一个换行符
var str="abc\nefd";console.log(str);-
\s匹配一个空白符(空格 制表符 换页符)
-
\S匹配除了\s以外的任意一个字符
-
\b匹配一个边界
-
\B匹配一个非边界
-
.除了\n以外的任意一个字符
var reg=/\d\w/;reg.test("1.2");//falsereg.test("1-2");//falsereg.test("1");//falsereg.test("1w");//truevar reg=/^\s\w\s$/;//字符串length是三reg.test(" w ");var reg=/^\s\s\s$/;// " "var reg=/\baa\B/;reg.test("a aa a aaa");//true- 1-2. 量词元字符(量词元字符一定要写在元字符的后面)
-
*前面的元字符出现0到多次
-
+前面的元字符出现1到多次
-
?前面的元字符出现0次或者1次
-
{number}前面的元字符出现number次
-
{number,}前面的元字符出现number到多次
-
{number,m}前面的元字符出现number到m次
var reg=/\d*/;reg.test("");//truereg.test("1");//truereg.test("111");//truereg.test("wwww...");//true
var reg=/^\w{4}1+$/;//length>=5reg.test("111111");//truereg.test("abcd2");//falsereg.test("121221");//false
var reg=/^1\d{10}$/;- 1-3.中括号
[] -
x|yx或y中的一个
-
[xyz]xyz中的一个
-
[^xyz]不是xyz中的任意一个
-
[a-z]a-z中的任意一个
在中括号中除了上面说的具有特殊意义的字符都只是代表本身的意思,但是转义字符\仍然是转义
var reg=/^[\d.]$/;//字符串的length=1reg.test("q");//falsereg.test("1.");//falsereg.test(".");//true- 在没有小括号的情况下,|最后运算
var reg=/^10|20$/;//以10开头 或者 以20结尾reg.test("1000D");//truereg.test("00020");//truereg.test("10201020");//truevar reg=/^(10|20)$/;//"10" "20" 以10开头结尾 或者 以20开头结尾
var reg=/^[1020]$/;//"1" "0" "2"var reg=/^[10-20]$/;//"1" "0-2" "0"var reg=/^[16-20]$/;//不对的-
举例
-
1.
21-26的正则
var reg=/^2[1-6]$/;- 2.
18-75的正则 - 可以将18-75差分为<18-19>18-19>,20-69 70-75
var reg=/^(1[8-9]|[2-6]\d|7[0-5])$/;- 3.在正则中小括号表示分组
- 作用:
- 1)改变优先级 先计算括号里面的
- 2)表示一个小分组 例如:\number ,表示第number个分组匹配的内容
var reg=/^(\w)(\w{2})\2\1$/;reg.test("_dcdc_")支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!












