补充:

2.正则表达式source
所有语言都通用:
PPT指代的规定:字符类、字符集合、边界、分组(匹配多个结果)、数量词
字符类
[直接量]
. (点号,小数点) 匹配任意单个字符,但是行结束符除外
\d 匹配任意阿拉伯数字。等价于[0-9]
\D 匹配任意一个不是阿拉伯数字的字符。等价于[^0-9]。
\w 匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。等价于 [A-Za-z0-9_]。
\W 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于 [^A-Za-z0-9_]。
\s 匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。
\S 匹配一个非空白符。
\t 匹配一个水平制表符(tab)
\r 匹配一个回车符(carriage return)
\n 匹配一个换行符(linefeed)
\v 匹配一个垂直制表符(vertical tab)
\f 匹配一个换页符(form-feed)

2.1.直接量字符
正则表达式中的所有字母和数字都是按照字面含义进行匹配的,Javascript正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜线""作为前缀进行转义。
字符 匹配
字母和数字字符 自身
\o Null字符(\u0000)
\t 制表符(\u0009)
\n 换行符(\u000A)
\v 垂直制表符(\u000B)
\f 换页符(\u000C)
\r 回车符(\u000D)
字符集合
[xyz] 一个字符集合,也叫字符组。匹配集合中的任意一个字符。你可以使用连字符‘-’指定一个范围。[0-9] [a-z]
[^xyz] 一个反义或补充字符集,也叫反义字符组。也就是说,它匹配任意不在括号内的字符。你也可以通过使用连字符 ‘-’ 指定一个范围内的字符。
边界
^ 匹配输入开始。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符后的开始处。
$ 匹配输入结尾。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符的前的结尾处。
\b 匹配一个零宽单词边界(zero-width word boundary),如一个字母与一个空格之间。
\B 匹配一个零宽非单词边界(zero-width non-word boundary),如两个字母之间或两个空格之间。

2.2.字符类
将直接量字符单独放进方括号内就组成了字符类,一个字符类可以匹配它所包含的任意字符。例如:/[abc]/ 就和字母"a"、“b”、“c"中的任意一个都匹配。”“符号用来定义否定字符类,例如:/[abc]/ 匹配的是"a”、“b”、"c"之外的所有字符。字符类可以使用连字符来表示字符范围,例如:/[a-z]/,要匹配拉丁字母表中任何字母和数字,[a-zA-Z0-9]
字符 匹配
[…] 方括号任意字符
[^…] 不在方括号内的任意字符
. 除换行符和其他unicode行终止符之外的任意字符
\w 任何ASCII字符组成的单词,等价于[A-Za-z0-9]
\W 任何不是ASCII字符组成的单词,等价于[^A-Za-z0-9]
\s 任何Unicode空白符
\S 任何非Unicode空白符的字符
\d 任何ASCII数字,等价于[0-9]
\D 除了ASCII数字之外的任何字符,等价于[^0-9]
[\b] 退格直接量
例如:
[0-9] 匹配中括号中0~9之间任意一个字符 等价于 \d
[^0-9] 除了0~9之外的任意字符 等价 \D
1 使用数字作为一行的开始
[0-9]$ 使用数字作为一行的结尾
[a-z] 匹配中括号a~z之间任意一个字符
\w 基本字符[A-Za-z0-9_]
\W [^A-Za-z0-9_]

//vi example-location.js
// location ^$
var multistr = “abc345abc\nAbc456sdf\nas1111abc\nFFF222GGG”;
console.log(text);
// 查找出以三个字母开头的一句话
// var pattern = /2{3}\w*/mg;
// 查找以三个字母开头并且以三个小写字母结尾的一句话
//var pattern = /3{3}\w*[a-z]{3}KaTeX parse error: Undefined control sequence: \w at position 34: …= /1{3}\̲w̲*[a-z]{3}/mg;
//var pattern = /4{3}\w*[a-z]{3}$/m;
var result = null;
while(result=pattern.exec(multistr)){
console.log(result);
console.log(pattern.lastIndex);
if(!pattern.global){
break;
}
}

2.3.重复
数量词
x* 匹配前面的模式 x 0 或多次。
x+ 匹配前面的模式 x 1 或多次。等价于 {1,}。
x? 匹配前面的模式 x 0 或 1 次。
x{n} n 是一个正整数。前面的模式 x 连续出现 n 次时匹配
x{n,} n 是一个正整数。前面的模式 x 连续出现至少 n 次时匹配。
x{n,m} n 和 m 为正整数。前面的模式 x 连续出现至少 n 次,至多 m 次时匹配。
x*? 像上面的 * 一样匹配前面的模式 x,然而匹配是最小可能匹配。
x+? 像上面的 + 一样匹配前面的模式 x,然而匹配是最小可能匹配。
x|y 匹配 x 或 y
重复方式
贪婪 匹配重复字符时是尽可能多的匹配,默认{1,4}
非贪婪 匹配重复字符时是尽可能少地匹配,在待匹配的字符数量词后跟随一个问号即可
例如: {1,4}?
/a+/ 可以匹配一个或者多个连续的字母a, 当使用“aaa”作为匹配字符串时正则表达式会匹配它的三个字符。
/a+?/ 可以匹配一个或者多个连续的字母a, 但是尽可能少地匹配。只能匹配第一个a
字符 含义
{n,m} 匹配前一项至少n次,但是不能超过m次
{n,} 匹配前一项n次或者更多次
{n} 匹配前一项n次
? 匹配前一项0次或者1次,也就是说前一项是可选的,等价于{0,1}

匹配前一项1次或者次,等价于{1,}匹配前一项0次或多次,等价于{0,}
描述某个规则的重复次数
/\d{2,4}/ //匹配2~4个数字
/\w{3}\d?/ //精确匹配三个单词和一个可选择的数字
/\s+javascript\s+/ //匹配前后带有一个或多个空格的字符串"javascript"
[a-z]+ : test.(“hello word” )=true test(“245 _355”).false
电话号码: 0351-1234567 [0-9]{4}-[0-9]{7} \d{4}-\d{7}

//vi example-exec.js
var line = “有道翻译提供即时免费的中文、英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语、越南语、印尼语、意大利语全文翻译、网页翻译、文档翻译服务。”;
//查找“中文”字符串和“火星文”字符串
var pattern=/中文|火星文/img;
//var pattern=/全文|中文/img;
var result=null;
while(result=pattern.exec(line)){
console.log(result);
console.log(pattern.lastIndex);
}

//vi example-test.js
// 检测有没有大于8个字符的单词
// test()方法返回boolean类型,如果匹配上,则为true,否则为false
// 如果是全局匹配的话,会维护一个lastIndex属性,该属性是正则表达式对象的
var str = “He must be a person who is positive and brave enough to make short term sacrifice for long term success.The future has arrived,It commences now”;
console.log(text);
var pattern = /[a-z]{8,}/img;
var result = false;
while(result=pattern.test(str)){
console.log(result,pattern.lastIndex);
if(!pattern.global){
break;
}
}

//vi example-choose.js
var str = “He must java be a (person( who is java00 {positive( and javascript brave (enough{ to make short term javascript01 {sacrifice{ for long term success.The future has arrived,It commences now”;
console.log(str);
// 查找java00和javascript01,并且要00,01
var pattern = /java(script)?(\d{2})/img;
var result = null;
while(result=pattern.exec(str)){
console.log(result);
console.log(result[2]);
console.log(pattern.lastIndex);
}
// var pattern = /java|javascript/img;// 查找java或者javascript
// var pattern = /java(script)??/img;// 查找java 非贪婪匹配,尽可能少的匹配
// 查找被((或者{{或者({或者{(包围的字符串
// var pattern = /[({]\w*[({]/img;
// 查找被((或者{{包围的字符串
//var pattern = /(\w*(|{\w*{/img;
// var pattern = /([({])\w*\1/img;

贪婪匹配
默认情况下,匹配重复字符是尽可能多匹配,而且允许后续的正则表达式继续匹配,称之为贪婪匹配。
非贪婪匹配
在待匹配的字符后跟随一个问号即可 ,例如:"??"、"+?"、"?"、"{1,5}?"
P=\java(script)?\img 只查找的是java

2.4.选择、分组、引用
分组
(x) 匹配 x 并且捕获匹配项。 这被称为捕获括号(capturing parentheses)。
\n n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串。
例如:/\w+://\w+(.)\w+\1\w+/
http://www.baidu.com
var str = “my website url is http://127.0.0.1:80/cms/index.html , my database url is jdbc:mysql://127.0.0.1:3306/cms , this is ok”
var pattern = /(http|jdbc:mysql|ftp)

JavaScript day10相关推荐

  1. Day10 -- JavaScript实现按下 Shift 键后进行多选操作的功能

    实现效果 需求分析 通过shift键实现连续多选功能 按下shift的同时点击A复选框,然后在点击B复选框,A,B之间的复选框都被勾选上 或者是先点击A复选框,再按下shift键点击B复选框,A,B之 ...

  2. Day10:html和css

    Day10:html和css <html> <body> <h1>标题</h1> <p>段落</p> </body> ...

  3. MySQL、JDBC、HTML、CSS、JavaScript、jQuery、tomcat、Http、Servlet、JSP、EL、JSTL、Maven、Cookie、Session(框架第一部分)

    第一章 MySQL 一 .数据库 1.什么是数据库? 所谓的数据库就是指存储和管理数据的仓库 2.数据库有哪些分类? 3.什么是关系型数据库? 底层以二维表的形式保存数据的库就是关系型数据库 stu- ...

  4. JavaScript,jQuery,Tomcat,Http,Servlet

    文章目录 @[toc] unit04-JavaScript JavaScript简介 什么是JavaScript(了解) JS特点和优势(了解) 在HTML书写JS的方式 JavaScript语法 注 ...

  5. 【AJAX】JavaScript的面向对象

    Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...

  6. 【JavaScript总结】JavaScript语法基础:JS高级语法

    作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...

  7. 【JavaScript总结】JavaScript语法基础:DOM

    ->DOM的理解:文档对应dom树 ->有了DOM能做什么:DOM的操作 html文档做为DOM树模型,DOM树的节点就是对象.对象会触发事件来执行一些事件代码. C#中的事件是一个委托变 ...

  8. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  9. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

最新文章

  1. 6.2.Scrapy获取图像
  2. 面试:ArrayList哪种遍历效率最好?
  3. Css中Position属性的含义
  4. 使用 iosOverlay.js 创建 iOS 风格的提示和通知
  5. list转datatable
  6. linux系统ftp服务器详解
  7. 计算机二级web题目(6)--动态网页技术概述
  8. Java13的API_JAVA基础--JAVA API常见对象(其他API)13
  9. 几何画板自定义工具_几何画板sketchpad下载-几何画板sketchpad免费版下载v5.0.6.5
  10. 通过反射获取私有方法
  11. 最流行的 RESTful API 要怎么设计?
  12. awr报告分析 mysql_生成awr报告
  13. RS编译码理论介绍与MATLAB性能仿真
  14. 商场购物的shell脚本
  15. MM定理(Modigliani-Miller)证明与图解
  16. 入手评测华为nova10和vivoS15pro选哪个
  17. 概述史:五胡十六国过这么乱的历史怎么可能搞得懂?6000字短文帮您整个清清楚楚...
  18. Sparql查询RDF
  19. P15-Windows与网络基础-NTFS权限规则
  20. ASK、FSK调制解调

热门文章

  1. ROM修改---修改手机开机时间
  2. RabbitMQ学习篇——(二)Rabbit安装完后,启动出现闪退问题解决!
  3. 如何在Excel/WPS表格中批量查询顺丰快递信息?
  4. 沙盒不再高端,Windows11将自带沙盒让程序检测更方便
  5. 单机游戏如何防止类似八门神器这类的内存修改器的篡改办法
  6. 慧算账加盟商交流会 2016深拓全国市场
  7. 【原创】竞品分析思维的一些基本思考与见解
  8. Rust 和 ScyllaDB NoSQL:提高性能的 3 种方法
  9. 转载:数据库的相关书籍
  10. 关于数据库方面的书籍