/正则表达式特殊字符/修饰符(可选)


这里列一下正则的特殊字符及其用法,加深理解和映象。
* \ 将字符变为特殊或非特殊字符。如 n 变为换行符 \n,特殊符号 ( 变为字符 \(。
* ^ 匹配字符串起始位置。
* $ 匹配字符串结束位置。
* * 匹配前面的子表达式零到多次。
* + 匹配前面的子表达式一到多次。
* ? 匹配前面的子表达式零到一次。
* {n} 匹配前面的子表达式的n个,如 o{2} 能够匹配 food 不能匹配 god。
* {n,} 至少匹配n个前面的子表达式,如 o{2,} 能够匹配 fooooood 不能匹配 god。
* {n, m} 至少匹配n次,至多匹配m次。
* 非贪婪模式 默认为贪婪模式,如 o+ 将匹配 foooood 的所有 o。而非贪婪模式(在匹配符后面加 ?),如 o+? 则只会匹配一个o
* . 匹配除换行符外任何单个字符。换行符为 \n 和 \r。
* (x) 捕获括号,匹配并记住匹配项。
* (?:x) 非捕获括号,匹配并不记住匹配项。如 /(?:foo){1,2}/,这里将 foo 作为一个整体进行匹配1到2次。
* x(?=y) 匹配x仅仅在x后面跟y的时候。?=y 表示字符串末尾是y。
* x(?!y) 匹配x仅仅在x后面不跟着y的时候。?!y 表示字符串末尾不是y。
* x|y 匹配 x 或 y,如 jack|rose 就可以匹配到 jack 和 rose 两个字符串。
* [xyz] 匹配方括号内任意字符。
* [^xyz] 反向字符集,匹配除方括号内字符的任意字符。
* [0-9] 范围匹配,匹配0-9范围内任意字符。
* \w 查找单词字符。单词字符包括:a-z、A-Z、0-9,以及下划线。
* \W 查找非单词字符。
* \d 查找数字字符。
* \D 查找非数字字符。
* \s 查找空白字符。空白字符包括空格、\n、\f、\r、\t、\v。
* \S 查找非空白字符。
* \b 匹配单词边界,通常匹配单词开头和结尾。如 /\bcd/ 匹配 cdkey。
* \B 匹配非单词边界。如 /\Bcd/ 匹配 abcd。
* \O 查找 NULL 字符。
* \n 换行符。
* \f 换页符。
* \r 回车符。
* \t 制表符。
* \v 垂直制表符。

修饰符
i 执行对大小写不敏感的匹配。
g 执行全局匹配。
m 执行多行匹配。

简单正则实例分析

/^[0-9]*$/
0-9范围内0到多个数字的组合,且字符开头结尾都是0-9的数字。即表示整数。如 1314、0

/^\d{m,n}$/
匹配m-n位的数字。由于开头结尾都是数字,所以它是一个固定长度的纯数字。

/^\-[1-9][0-9]*$/
匹配-开头,数字结尾,第一个字符为1-9,随后0-n个字符为0-9的字符。即非零负整数

/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
这是匹配邮件的一个正则,我们一点点看。

正则用法在JavaScript中正则表达式用法为:/正则表达式特殊字符/修饰符(可选)特殊字符这里列一下正则的特殊字符及其用法,加深理解和映象。* \ 将字符变为特殊或非特殊字符。如 n 变为换行符 \n,特殊符号 ( 变为字符 \(。* ^ 匹配字符串起始位置。* $ 匹配字符串结束位置。* * 匹配前面的子表达式零到多次。* + 匹配前面的子表达式一到多次。* ...
这里说的 路由 拆分指的是将 路由 的文件,按照模块拆分,这样方便 路由 的管理,更主要的是方便多人开发。具体要不要拆分,那就要视你的项目情况来定了,如果项目较小的话,也就一二十个 路由 ,那么是拆分是非常没必要的。但倘若你开发一些功能点较多的商城项目, 路由 可以会有一百甚至几百个,那么此时将 路由 文件进行拆分是很有必要的。不然,你看着index.js文件中一大长串串串串串串的 路由 ,也是很糟糕的。 首先我们在router文件夹中创建一个index.js作为 路由 的入口文件,然后新建一个modules文件夹,里面存放各个模块的 路由 文件。例如这里储存了一个vote.js投票模块的 路由 文件和一个公共模块的 路由 文件。下面直
将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配\n。“\n”匹配换行符。序列“\”匹配“\”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 匹配输入字符串的结束位置。如果设置了Re...
Vue 源码 Vue Router(三)matcher Vue 源码 Vue Router(三)matchermatchercreateMatcheraddRoutesmatch总结 Vue 源码学习目录 Vue 源码 Vue Router(三)matcher 学习内容和文章内容来自 黄轶老师 黄轶老师的慕课网视频教程地址:《 Vue .js2.0 源码揭秘》、 黄轶老师拉钩教育教程地址:《 Vue .js 3.0 核心源码解析》 这里分析的源码是Runtime + Compiler 的 Vue .js 调试代码在:node_
最近看到 vue 源码的模板解析,parse 中主要就是用正则去解析template然后生成ast抽象树。这则匹配用到最多的就是match。 match([string] | [RegExp]) 这里主要说正则表达式 1、返回值:Array/null 2、不使用g全局匹配时 var str='2019shanghai=nihao !!' str.match(/\w[i]/) 可以...
匹配非法字符: /[@#\$%\^&\*\s+]+/g 关键字中含有特殊字符:/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g \s表示空白字符。包括,空格,制表符等 ""只表示空格 \s+可匹配至少一个空白字符 [ ]+...
1.3 路由 匹配语法 1.3.1 概述 大多数应用程序使用静态 路由 (如 /news )和动态 路由 (如 /books/1 )就可以满足应用的需求,不过 Vue Router 提供了更加强大的参数匹配能力。要匹配任何内容,可以使用自定义参数正则表达式,方法是在参数后面的圆括号中使用正则表达式。 1.3.2 参数中自定义正则表达式 使用静态部分来区分不同的 URL 当定义一个如 “ :id ” 的参数时, Vue Router 在内部使用正则表达式“ ([^/]+) ”(至少一个不是斜杠 / 的字符)从 URL
转载自    动态 路由 匹配我们经常需要把某种模式匹配到的所有 路由 ,全都映射到同个组件。例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染。那么,我们可以在 vue -router 的 路由 路径中使用“动态路径参数”(dynamic segment) 来达到这个效果:const User = { template: '&lt;div&gt;User&lt;/di...
在上面的代码中,我们使用了一个计算属性`numbersWithNewLine`,它使用`join()`方法将数字数组转换为一个带有换行符的字符串。然后,我们在模板中使用`v-for`指令循环遍历这个新的字符串数组,并将每个数字包装在一个`<p>`标签中显示出来。 如果你想要将换行符添加到每个数字前面,可以修改计算属性中的字符串拼接逻辑,像这样: computed: { numbersWithNewLine() { return this.numbers.map((number) => `\n${number}`).join(''); 这样,每个数字前都会添加一个换行符,然后再将它们连接成一个字符串。