定义方式
一般都要以 转义符号 \ 开头 不使用构造时,直接使用 / 开头 /结尾。中间为具体的表达式
var reg = new RegExp("\\w+");
var reg = /\w+/;
修饰符
书写第二种的时候,置于第二个 / 之后做修饰,可不填
可以添加在 / 后面的值以及意义如下:
i // 忽略大小写
g // 全部匹配,匹配第一个后不停止
m // 多行匹配
方括号
[abc] 查找方括号之间的任何字符
[^abc] 查找任何不在方括号之间的字符
[0-9] 查找任何从 0 至 9 的数字
[a-z] 查找任何从小写 a 到小写 z 的字符
[A-Z] 查找任何从大写 A 到大写 Z 的字符
[A-z] 查找任何从大写 A 到小写 z 的字符
[adgk] 查找给定集合内的任何字符
[^adgk] 查找给定集合外的任何字符
(red|blue|green) 查找任何指定的选项
带有特殊意义的字符
. 查找单个字符,除了换行和行结束符
\w 查找数字、字母及下划线。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符
\s 查找空白字符
\S 查找非空白字符
\b 匹配单词边界
\B 匹配非单词边界
\0 查找 NULL 字符
\n 查找换行符
\f 查找换页符
\r 查找回车符
\t 查找制表符
\v 查找垂直制表符
\xxx 查找以八进制数 xxx 规定的字符
\xdd 查找以十六进制数 dd 规定的字符
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符
量词(置于单个或者[] 之后,占位符之后,字符串之后)
+(至少出现一次)
*(出现零次或多次)
?(出现零次或一次)
{x} (出现x次)
{x,}(至少出现x次)
{x, y}(至少x次,最多y次)
$(以该字符结尾)
^ (以该字符开头)
特殊:
?=n (任何后面紧接着n的)
?!n (任何后面不紧接着n的)
RegExp 对象方法
exec 检索字符串中指定的值。返回找到的值,并确定其位置
test 检索字符串中指定的值。返回 true 或 false
toString 返回正则表达式的字符串
在string中支持正则书写的方法
search 检索与正则表达式相匹配的值 返回true false
match 匹配正则表达式
replace 替换
split 字符串分割为字符数组
个别案例
判断是否全为数字字母下划线
/^\w+$/.test(str)
判断是否全为字母
/^[a-zA-z]+$/.test(str)
判断是否全为数字
/^\d+$/.test(str)
/*是否带有小数*/
function isDecimal(strValue ) {
var objRegExp= /^\d+\.\d+$/;
return objRegExp.test(strValue);
}
/*校验是否中文名称组成 */
function ischina(str) {
var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/
return reg.test(str); /*进行验证*/
}
/*校验电话码格式 */
function isTelCode(str) {
var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
return reg.test(str);
}
/*校验邮件地址是否合法 */
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
匹配两种百度网盘连接(参考前端大佬)
格式一:链接: https://pan.baidu.com/s/8451daefda65gfhkj2g5d5za5
格式二:http://pan.baidu.com/share/link?shareid=1549998&uk=81315421
function baiduDownLinkArr( string ){
var reg = /([http|https]*?:\/\/pan\.baidu\.com\/[(?:s\/){0,1}|(share)]*(?:[0-9a-zA-Z?=&])+)(?:.+:(?:\s)*)?([a-zA-Z]{4})?/;
console.log(reg.exec(string));
}