JavaScript正则表达式-学习笔记(不定期更新)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript正则表达式-学习笔记(不定期更新)相关的知识,希望对你有一定的参考价值。
javascript权威指南学习笔记,禁止转载!
8、正则表达式
在常见的字符串检索或替换中,我们需要提供一种模式表示检索或替换的规则。
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
使用:
/\d\d\d/.test(“123”); //true
new RegExp(“Bosn”).test(“Hi,Bosn”); //true
正则基础:
. |
任何字符(除换行符以外) |
/…/.test(‘[email protected]’) |
\d |
数字0-9 |
/\d\d\d/.test(‘123’) |
\D |
非\d,即不是数字0-9的字符 |
/\D\D\D/.test(‘ab!’) |
\w |
字母a-zA-Z,数字0-9,下划线 |
/\w\w\w\w/.test(‘aB9_’) |
\W |
非\w |
/\W\W\W/.test(‘@!#’) |
\s |
空格符、Tab、换页符、换行符 |
/\sabc/.test(‘ abc’) |
\S |
非\s |
|
\t\r\n\v\f |
Tab、回车、换行、垂直制表符、换页符 |
|
[] |
字符范围 |
[a-z] [0-9] [A-Za-z0-9] |
[^ ] |
字符范围以外 |
[^a-z] |
^ |
行首 |
^Hi |
$ |
行尾 |
test$ |
\b |
零宽单词边界 |
\bno匹配‘a_no’ |
\B |
非\b |
|
转义符\ |
匹配 . ^ $ 这些字符前加上特殊转义符 \ |
/\^abc/.test(‘^abc’) |
() |
分组 |
|
\n |
表示使用分组符()匹配到的字符串 |
/(abc)\1/.test(‘abcabc’) |
(?:) |
仅分组 |
/(?:abc)(def)\1/.test(‘abcdefdef’) |
x*,x+ |
重复0或多次,重复1或多次(贪婪算法) |
abc*匹配ab,abc,abccc abc+匹配abc,abccc |
x*?,x+? |
x+?:匹配x自身 非贪婪算法 |
abc*?在字符串abcccc中匹配ab abc+?在字符串abcccc中匹配abc |
x? |
重复0或1次 |
|
x|y |
x或y |
x|y匹配x也匹配y |
x{n} x{n,} x{n,m} |
重复n次 重复>=n次 n=<重复次数<=m |
x{5}匹配xxxxo x{1,3}匹配x,xx,xxx |
三个flag
global(正常匹配到一个就结束了,若需匹配到所有的情况则用global标签),
ignoreCase(不区分大小写)
multiline(可以跨行检索)
如何设置标签:
/abc/gim.test(‘ABC’); //true
RegExp(“abc”,“mgi”) .test(‘ABC’); //true
RegExp对象属性:global、ingoreCase、multiline、source
/abc/g.global //true
/abc/g.ignoreCase //false
/abc/g.multiline //false
/abc/g.source //“abc”正则的内容
RegExp对象方法:compile、exec、test、toString
/abc/.exec(“abcdef”); //“abc”返回用正则去匹配字符串匹配的结果
/abc/.test(“abcdef”); //true
/abc/.toSTring(); // “/abc/”返回正则的内容
var reg=/abc/; reg.compile(“def”);reg.test(“def”); //true改写正则的内容
string类型与正则相关的方法
String.prototype.search 返回正则在字符串中的索引
“abcabcdef” .search(/abc\1/); //0(索引为0)
String.prototype.replace 替换字符
“aabbbbcc”.replace(/b+?/,“1”); // aa1bbbcc
String.prototype.match返回一个数组,数组元素是正则的内容
“aabbbbcc”.match(/b+/); //[“bbbb”]
“aabbbbccbbaa”.match(/b+/g); //[“bbbb”,“bb”]
String.prototype.split分割字符串,返回一个数组
“aabbbbccbbaa”.split(/b+/); //[“aa”,“cc”,“aa”]
应用
//校验密码:只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
学会正则会大大提高编程效率!!!
以上是关于JavaScript正则表达式-学习笔记(不定期更新)的主要内容,如果未能解决你的问题,请参考以下文章