JavaScript笔记-正则表达式

JavaScript笔记-正则表达式

初识( 正则表达式是用来干嘛的?)

正则表达式(regular expression,简称RegEx)是一种工具
可以用来:
测试字符串内的模式
例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
替换文本
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
基于模式匹配从字符串中提取子字符串
可以查找文档内或输入域内特定的文本。

工具人-正则表达式-出现场景:(例子)
*(从大量文本中查找符合某一规则的文本、验证用户输入是否符合格式等)

  • 你正在搜索一个文件,这个文件里包含着单词car(不区分字母大小写),但你并不想把包含着字符串car的其他单词(比如scar、carry和incarcerate等)也找出来。

  • 你正在编辑一段源代码并且要把所有的size都替换为isize,但这种替换仅限于单词size本身而不涉及那些包含着字符串size的其他单词。

    • 你正在显示一份计算机文件系统中所有文件的清单,但你只想把文件名里包含着Application字样的文件列举出来。
      【查词,排除那些包含着所查词汇的其他单词】
  • 你打算用一种应用服务器来动态地生成一个Web网页以显示从某个数据库里检索出来的文本。在那些文本里可能包含着一些URL地址字符串,而你希望那些URL地址在最终生成的页面里是可点击的(也就是说,你打算生成一些合法的HTML代码—— ——而不仅仅是普通的文本)。

  • 你创建了一份包含着一张表单的Web页面,这张表单用来收集用户信息,其中包括一个电子邮件地址。你需要检查用户给出的电子邮件地址是否符合正确的语法格式。【格式检验】

  • 你正在把一些数据导入应用程序。那些数据以制表符作为分隔符,但你的应用程序要支持CSV格式(每条记录独占一行,同一条记录里的各项数据之间用逗号分隔并允许被括在引号里面)。

  • 你需要在文件里搜索某个特定的文本,但你只想把出现在特定位置的(比如每行的开头或是每条语句的结尾)找出来。

以上场景都是大家在编写程序时可能会遇到的问题,用任何一种支持条件处理和字符串操作的编程语言都可以解决它们,但问题是你的解决方案将会变得十分复杂。
使用正则表达式前(没有工具,代码、操作繁琐冗杂-麻烦)
比较容易想到的办法是,用一些循环来依次遍历那些单词或字符并在循环体里面用一系列if语句来进行测试,这往往意味着你需要使用大量的标志来标记你已经找到了什么,你还没有找到什么,还需要检查空白字符和特殊字符,等等。而这一切都需要以手工方式来进行。
使用正则表达式(拥有工具、找出规律,化繁为简-高效)
上述问题都可以用一些精心构造的语句,或者说一些由文本和特殊指令构成的高度简练的字符串来解决,比如像下面这样的语句:
\b[Cc][Aa][Rr]\b
*注意:如果现在还看不懂这一行,先别着急。你很快就会知道它的含义是什么。

什么是正则表达式?

刚才对正则表达式有了一个初步印象,那么到底什么是正则表达式呢?

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE;JavaScript中常简称其为:RegEx

是用来匹配 一系列符合某个规则的字符串的表达式,正则表达式独立于编程语言,几乎所有的编程语言甚至文字处理软件都支持正则表达式。
正则表达式使用单个字符串来描述、匹配一系列或某个句法规则的字符串。
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

正则表达式的常见长相:
只是看看样子,用法后面介绍

基础语法:在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(javascript,正则表达式)