JS正则表达式学习总结 +多个校验案例

定义方式

一般都要以 转义符号 \ 开头 不使用构造时,直接使用 / 开头 /结尾。中间为具体的表达式

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));
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值