javascript中10个正则表达式使用介绍基础篇

在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

1.匹配模式

正则表达式查找与模式匹配的字符串部分

在JavaScript中,它们是在正斜杠之间//或使用new RegExp()

例如:

var str = "Visit Jb51.net!";
var n = str.search(/jb51.net/i);

例子2

<script language="javascript">
var reg=new RegExp("终古","g"); //创建正则RegExp对象
var stringObj="终古人民共和国,终古人民";
var newstr=stringObj.replace(reg,"中国");
alert(newstr);
</script>

例子3

function dotag()
{
第一种写法RegExp
document.form1.tag.value = trim(document.form1.tag.value.replace(new RegExp(',',"gm"),','));
第二种用//
document.form1.tag.value = trim(document.form1.tag.value.replace(/,/gm,",");
}

是不是第二中更好看,第一种遇到\w,还得多加一个\,\\w,所以一般情况下,我们都是用//.

更多的可以参考这篇文章:JavaScript replace new RegExp使用介绍

然后用于match , test或replace

您可以预先定义正则表达式,也可以直接在调用方法时定义

2.匹配多个

一次匹配单个字符,

或将多个字符放在方括号[]中以捕获任何匹配的字符

使用连字号捕获一系列字符-.

举例

[0-9]表示0,1,2...9的数字

[a-z]表示26个小写字母

[A-Z]表示26个大写字母

3.可选标志

在正则表达式的末尾添加可选标志,以修改匹配器的工作方式。

在JavaScript中,这些标志是:

i =不区分大小写 m =多行匹配 g =全局匹配(查找全部,而不是查找一个)

4.开始和结束

在开始处使用插入符号^表示“字符串开始”

在末尾使用美元符号$表示“字符串结尾”

开始将匹配项组合在一起以匹配更长的字符串

在表单验证中,需要前面加 ^后要加$

更多的可以参考这篇文章:https://www.jb51.net/article/118265.htm

5.通配符

使用通配符和特殊的转义字符来匹配较大类的字符

. =除换行符外的任何字符

\ d =数字 \ D =不是数字

\ s =空格 \ S =任何非空白

\ n新行 \w非空字母

6.特定数量

仅将特定数量的匹配字符或组与量词匹配

=零或更多 =还有一个? = 0或1 {3} =正好3倍{2,4} =两倍,三倍或四倍{2,} =两倍或更多倍

7.小括号匹配组

使用parens()捕获组

match会返回完整匹配加上组,除非您使用g标志

使用管道运算符| 在parens()内部以指定该组匹配的内容

| =或

8.反斜杠

要匹配特殊字符,请使用反斜杠\

JS正则表达式中的特殊字符是:^ $ \. * +? ()[] {} |

因此,要匹配一个星号,可以使用:

\ *

不只是*

9.中括号里的^

要匹配某个字符但要匹配某个字符,请在方括号内使用插入号^

这意味着^有两个含义,可能会造成混淆。

当它在正则表达式的前面时,它表示“字符串的开始”,而在方括号内使用时,则表示“不是此字符”。

10.总结

正则表达式可用于查找和匹配各种内容,从url到文件名

然而! 如果您尝试将正则表达式用于真正复杂的任务,请务必谨慎,例如解析电子邮件(这确实令人困惑,非常快)或HTML(非常规语言,因此无法由正则表达式完全解析)

正则表达式还有(当然)还有更多,例如懒惰vs贪婪,超前和捕获

更多的可以查看这篇文章:https://www.jb51.net/article/181099.htm

但是大多数web开发人员想要使用正则表达式的东西都可以仅使用这些基本构建块。

我已经在写一堆有关真实世界正则表达式用例的后续文章🎉

原文:https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4

译文:http://caibaojian.com/10-regex-tip.html

我们小编特别补充,在这里推荐大家查看下面的文章。

(0)

相关推荐

  • 揭开正则表达式的神秘面纱(regexlab出品)

    引言 正则表达式(regular expression)就是用一个"字符串"来描述一个特征,然后去验证另一个"字符串"是否符合这个特征.比如 表达式"ab+" 描述的特征是"一个 'a' 和 任意个 'b' ",那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征. 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址.(2)用来查找字符串,从一个长的文本中查找符合指定特征的

  • javascript中10个正则表达式使用介绍基础篇

    在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace(). search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置. replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 1.匹配模式 正则表达式查找与模式匹配的字符串部分 在JavaScript中,它们是在正斜杠之间//或使用new RegExp() 例如: var str = "Visi

  • 浅谈javascript中关于日期和时间的基础知识

    前面的话 在介绍Date对象之前,首先要先了解关于日期和时间的一些知识.比如,闰年.UTC等等.深入了解这些,有助于更好地理解javascript中的Date对象.本文将介绍javascript关于日期和时间的基础知识 标准时间一般而言的标准时间是指GMT和UTC,以前是GMT,现在是UTC GMT 格林尼治标准时间(GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线 理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空

  • JavaScript中setter和getter方法介绍

    javascript中的setter.getter是平时接触比较少的方法,其本身也并不是标准方法,只在非ie浏览器里支持(ie内核也许有其他方法可以做到呢?暂时不知其解),但是加以利用可以做许多事情,比如: 1.对数据的访问限制: a.value是对value变量的getter方法调用,如果在getter方法实现中抛出异常,可以阻止对value变量的访问 2.对dom变量进行监听: window.name是一个跨域非常好用的dom属性(大名鼎鼎,详见百度),如果覆盖window.name的set

  • 基于JavaScript中标识符的命名规则介绍

    JavaScript中的标识符的命名有以下规则: 由字母.数字.$._组成 以字母.$._开头 不可以使用保留字!!! 要有意义!!!!!!! 标识符的命名规范: 1.驼峰命名法 除标识符的第一个单词外,其余单词的首字母大写,例如:trueName 2.蛇型命名法 单词之间用_隔开,例如:true_name (注:大多数情况下,以1~2个下划线开始的标识符,代表特殊变量或内部变量,我们在自己定义的时候,尽量避免使用以下划线开头的变量) (粗浅的见解,望批评指正) 以上这篇基于JavaScript

  • JavaScript中document.activeELement焦点元素介绍

    目录 1.默认焦点在body 2.文本框手动获取焦点 3.通过focus获取焦点 4.tab切换焦点 5.document.hasFocus()判断是否获取焦点 前言: 有时需要获取页面焦点在哪个元素上,通过焦点可以判断用户是否在操作页面等信息.以前不太方便,要自己记录,html5增加了document.activeElement属性可以获取到当前激活的焦点. 1.默认焦点在body 页面加载后,document.activeElement是在body上: console.log(documen

  • JavaScript中的useRef 和 useState介绍

    目录 1.useState hook 2.useRef hook 3.useRef 与 useState 4.何时使用 Refs 和 States 1.useState hook useState 是一个内置的 React hook,它允许您将信息作为状态存储在变量中.它允许您将 React 状态添加到功能组件.在下面的示例中,useState()声明状态变量,而值存储在计数变量中.setCount是用于更新此值的函数. //从 react 导入 useState import React, {

  • JavaScript中闭包之浅析解读(必看篇)

    JavaScript中的闭包真心是一个老生常谈的问题了,最近面试也是一直问到,我自己的表述能力又不能完全支撑起来,真是抓狂.在回来的路上,我突然想到了一个很简单的事情,其实我们在做项目时候,其实就经常用到闭包的,可是面试问的时候,回答又往往是我们经常搜到的答案,唉 不管是应付面试 还是真的想学点东西 ,我也用自己的理解跟大家分享一下,书面化就避免不了了的. 1.闭包是什么? 红宝书中曰:"是指有权访问另外一个函数作用域中的变量的函数." 简单的说,JavaScript允许使用内部函数-

  • JavaScript中常用的正则表达式日常整理(全)

    //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注

  • JavaScript中的类(Class)详细介绍

    在JavaScript中,可以使用类(Class)来实现面向对象编程(Object Oriented Programming).不过,JavaScript中的类与Java中的有所不同,其相应的定义和使用也不一样. JavaScript中类的定义 在JavaScript中,所有从同一个原型对象(prototype)处衍生出来的对象组成了一个类:也就是说,JavaScript中的类是一个对象集合的概念,如果两个对象它们的prototype相同,那么它们就属于同一个类:JavaScript中的类甚至都

  • JavaScript中的DSL元编程介绍

    在看JavaScript Template源码的时候,发现有一个很有意思的用法用来生成函数,想到这不就是元编程么? JavaScript 元编程 复制代码 代码如下: 元编程(Metaprogramming)是指某类计算机程序的编写,这类计算机程序编写或者操纵其他程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作. JavaScript eval 复制代码 代码如下: eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 可以有下面的用法: 复

随机推荐