基本正则笔记

简介: 1.   ^   字符串的开始; $ 字符串的结束 example: "^abc" 以abc 开头   "def$"  以def结尾2.  *   没有或者更多; + 一次或者更多  ; ? 没有或者一个 example:  "ab*" a 后面跟着零个或者若干个b;      "ab+" ...

1.   ^   字符串的开始; $ 字符串的结束

 example: "^abc" 以abc 开头   "def$"  以def结尾

2.  *   没有或者更多; + 一次或者更多  ; ? 没有或者一个

 example:  "ab*" a 后面跟着零个或者若干个b;

      "ab+" a 后面后面跟着一个b或者若干个b ;

      "ab?"  a 后面跟着零个b或者一个b

      "a?b+$"  结尾处,没有a或者一个a后面一个或者多个b; 以没有a或者一个a后面一个或者多个b结尾(从后面往前读)

3. { }  表示重复次数

 example: "ab{2}"  a后面跟着两个b

      "ab{2,}"  a后面跟着至少两个b

      "ab{2,5}" a 后面跟着2到5个b

 4.  |   表示或

 example: "hi | hello" 字符串里有hi 或者hello

      (b | cd)ef  'bef' 或者cdef

5.   .  代表任何字符串

 example:   "a.[0-9]" a 后面跟着任意一个字符和任意一个数字

      "^.{3}$" 任意三个字符的字符串

6.  []   括号的内容是可选字符集, 某些字符允许在一个字符串中的某一特定位置出现

example: 

  "[ab]":表示一个字符串有一个"a"或"b"(相当于"a¦b");

  "[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a¦b¦c¦d"或者"[abcd]");

  "^[a-zA-Z]":表示一个以字母开头的字符串;

  "[0-9]%":表示一个百分号前有一位的数字;

  ",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。

 

 

 

常用正则匹配:

 

//校验密码:只能输入6-10个以字母开头、可带数字、“_”、“.”的字串 

/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,9}$/    

  拆分: ^[a-zA-Z]{1} 一个字母开头,

      ([a-zA-Z0-9] | [._]) 数字,字母 或者 ._       

      {4,19}  4-19 个

// 常用密码  只能输入6-20个字母、数字、下划线, \w 用于匹配字母 数字 下划线

/^(\w){6,20}$/

 

//校验URL

/^http[s]{0,1}:\/\/.+$/

/^http[s]{0,1}:\/\/.{1,n}$/

(表示url串的长度为length(“https://”) + n )


 \ / :表示字符“/”。

匹配URL 和IP地址的

function IsURL (str_url) {
    var strRegex = '^((https|http|ftp|rtsp|mms)?://)'
        + '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' //ftp的user@ 
        + '(([0-9]{1,3}.){3}[0-9]{1,3}' // IP形式的URL- 199.194.52.184 
        + '|' // 允许IP和DOMAIN(域名) 
        + '([0-9a-z_!~*\'()-]+.)*' // 域名- www. 
        + '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].' // 二级域名 
        + '[a-z]{2,6})' // first level domain- .com or .museum 
        + '(:[0-9]{1,4})?' // 端口- :80 
        + '((/?)|' // a slash isn't required if there is no file name 
        + '(/[0-9a-z_!~*\'().;?:@&=+$,%#-]+)+/?)$';
    var re=new RegExp(strRegex);
    //re.test() 
    if (re.test(str_url)) {
        return (true);
    } else {
        return (false);
    }
}

  

 

取出 a 的 href:  /(?<=<a\s*.*href=")[^"]*(?=")/g    =>  www.com       

        /<a.*?href?\s*=\s*['|"]+?(.*?)['|"]+?/g;  => <a href="www.com"
 
 
 
  • 已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById” 正则解决

var a = 'get-element-by-id'.split("-");

var b= [];

a.forEach(function(i){b.push(titleCase(i))})

function titleCase(str) { return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase()); };

function firstLowerCase(str) { return str.replace(/( |^)[A-Z]/, (L) => L.toLowerCase()); };

firstLowerCase(b.join().replace(/,/g,''));
// "getElementById"

 

对电话号码的部分隐藏:

"13456789012".replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3")

主要通过分组将里面部分的需要隐藏的替换

 

推荐文章:https://segmentfault.com/a/1190000014981826

目录
相关文章
学习正则表达式
学习正则表达式
46 0
|
6月前
|
人工智能 JavaScript 前端开发
正则表达式[入门]
正则表达式[入门]
49 0
|
SQL Linux Shell
正则表达式实战
本文都是基于Linux 支持的正则来实战。关于正则的流派见这里。
134 1
|
数据安全/隐私保护 C++ Perl
第二章正则表达式
第二章正则表达式
74 0
|
前端开发
前端学习案例1-正则概述-元字符
前端学习案例1-正则概述-元字符
71 0
前端学习案例1-正则概述-元字符
|
移动开发 前端开发 JavaScript
循序渐进,通过40个正则我终于入门了正则表达式
最近在阅读axios中的工具函数的源码,说实话学到了很多知识,只要看不懂的我就不断的查阅资料,进行自我校验、自我巩固和自我讲解,总之就是不断的将自己不懂的基础知识挖深学习。因为之前查看源码的一段时间,保证的只是能看懂源码的逻辑就算是不错了,学习的深度还不够,没有真正的抓住源码的思想精髓。
144 0
正则表达式入门
正则表达式入门
577 0
正则表达式入门
|
自然语言处理
正则表达式学习总结
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
1836 0
正则表达式学习总结