关于正则表达式,你应该会用到的一些知识

说正则表达式之前,先来几个常用的正则参考,方便大家使用的时候,直接拿去用,然后在开始讲理论知识(啧啧啧)


1: 输入的数字值在 1-100之间,且包含1和100
number = /^(?:|[1-9][0-9]?|100)$/;
number = /^(\d{1,2}|100)$/;

2: 输入的数字值在 0-1之间(如:0.45),且包含0和1
number = /^1$|^0(\.\d{1,})?$/;

3: 验证身份证号
reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;

4: 验证邮箱
email = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;

5: 验证手机号码
1:reg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
2:!(/^1[34578]\d{9}$/.test(需要验证的手机号))

6: 验证银行卡号19位
cardNumber = /^(\d{19})$/;

7: 验证1-6位小数
decimal = /^[0-9]+(.[0-9]{1,6})?$/;

8: 验证英文
english = /^[A-Za-z]+$/;

9: 验证数字,最多有两个小数
number = /^[0-9]+(.[0-9]{1,2})?$/;

10: 验证1-3小数
number = /^\d{1,3}$/;

11: 更改时间日期的显示
var start_time = "2018-06-28T09:13:11";
正则方式:start_time.replace(/-/g, '.').substr(0, 10) + ' ' + start_time.replace(/:/g, '.').substr(11, 18)
执行结果:"2018.06.28 09.13.11"

微软上关于正则表达式的一个说明文档,讲解的挺详细的,可以参考下~

正则表达式示例

正则表达式说明
/^\s*$/匹配空行。
/\d{2}-\d{5}/匹配由两位数字、一个连字符再加五位数字组成的 ID 号。
/<\s*(\S+)(\s[^>])?>[\s\S]<\s*\/\1\s*>/匹配 HTML 标记。

常用的元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\d匹配 数字
\b匹配 单词的开始或结束
^匹配 字符串的开始
$匹配 字符串的结束



【注】:

第一个例子:
    元字符^(和数字6在同一个键位的符号)和$都匹配一个位置,这和\b有点类似。^ 匹配你要用来查找的字符串的开头,$匹配结尾。例如,验证1-3小数,可以这样写
number = /^\d{1,3}$/;
第二个例子:
    \ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
    \d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。
    \b\w{6}\b 匹配刚好6个字符的单词。
第三个例子:
    像[0-9]代表的含意与\d就是完全一致的:一位数字;同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)

对应上面表格中的常用元字符,你可以很直观的看出这行正则是什么意思,就瞬间明白了。

【重复】常用的限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

【反义】常见的反义代码

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^X]匹配除了x以外的任意字符
^[aeiou]匹配除了aeiou这几个字母以外的任意字符


【例子】:

<a[^>]+>匹配用尖括号括起来的以a开头的字符串



以上就是关于正则的一些基本的知识,日常小型开发需要用到的一些正则校验。相信在你看了这篇文章之后,应该可以足够应付了。但是还有很多没有提到的东西。包含一些语法和简单的说明。你可以在网上找到更详细的参考资料来学习它们,前提是当你需要用到它们的时候。

这里提供一个MDN的网站,关于正则基础的讲解。希望你能有所收获~

MDN-正则表达式,可以系统的学习下正则的基础知识~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值