- 正则表达式用于定义一些字符串规则
- 语法:
用RegExp构造函数创建 var 变量 = new RegExp("正则表达式","匹配模式")------更加灵活
或用字面量创建正则表达式:var 变量=/正则表达式{n}/匹配模式,
量词: n表示它前面的一个字符连续出现的次数,如果想多个字符交叉重复出现可将字符加个小括号 例如:/(ab){3}/意思就是出现ababab这样的规则 ;{x,y}表示出现x到y次都可以,{x,}表示x次以上
+表示至少一个相当于{1,};*表示0个或多个相当于{0,}; ?表示0个或一个 相当于{0,1}
| 和 [ ] 表示 或者 的意思 a|b==[ab] ,其中[A-z]表示任意的字母;
[^ ]表示除了,也就是除了这些还有其他字符
^表示开头,/^a/要求以a开头
$表示结尾,/a$/要求以a结尾
如果在正则表达式中同时使用^$则要求字符串完全符合正则表达式
例如:/^1[3-9][0-9]{9}$/用来判断手机号,^1表示第一位为1,[3-9]表示第二位是3-9,[0-9]{9}$后9位是0-9并且共11位结束
. 表示任意字符,在正则表达式中使用\作为转义字符,注意使用构造函数时,由于它的参数是字符串,而\是字符串中转义字符,如果要使用\则需要\\来代替
\w表示任意字母、数字、_也就是[A-z0-9_]
\W表示除了字母、数字、_也就是![A-z0-9_]
\d表示任意数字也就是[0-9]
\D表示除了数字也就是![0-9]
\s表示空格
\S表示除了空格
\B表示除了单词边界
\b表示单词边界
/\b单词\b/:表示单词是独立的单词不附属于某个单词的一部分,也就是前后有空格与其他隔开
匹配模式:(可多个同时,且顺序无所谓)
i:忽略大小写
g:全局匹配模式
- 方法:
test()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,返回类型是布尔型
- 字符串和正则相关的方法:
split()-可以将一个字符串拆分为一个数组
-可以传递一个正则表达式作为参数,这种方法将会根据正则表达式拆分字符串
-这个方法即使不指定匹配模式也会全局搜索
search()-可以用来搜索字符串中是否含有指定内容
-如果搜索到指定内容,则会返回第一次出现的索引值,如果没有返回-1
-它可以接受一个正则表达式参数,然后根据正则表达式去检索字符串
-这个方法只会查找第一个,即使设置全局匹配也没用
match()-可以根据正则表达式从一个字符串中将一个符合条件的内容提取出来
-默认情况下match只会找到第一个符合要求的内容,找到后就会停止搜索,因此我们要设置全局匹配模式,去匹配到所有内容
-将匹配到的内容封装到数组返回,即使只有一个结果,也是被封装到数组
replace()-将字符串中的指定内容替换为新的内容
-用第二个参数替换第一个参数(可以用一个正则表达式,并设置匹配模式)
-第二个参数为""时,就可以理解为删除
例如:replace(/^\s*/,"")表示去除开头的所有空格
replace(/\s*$/,"")表示去除结尾的空格
replace(/\s*$|^\s*/g,"")表示去除前后的空格