热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

js正则匹配字符串其中的一部分_写给前端的正则表达式入门

本文转载于SegmentFault社区专栏:码力全开作者:savokiss概览在JavaScript中,使用即可创建一个正则表达式对象&#

本文转 SegmentFault 社区专栏:码力全开

作者:savokiss


概览

在 Javascript中,使用 //即可创建一个正则表达式对象,当然也可以使用 new RegExp()常用的跟正则相关的方法有 match、test和 replace。其中 match,replace都是字符串上的方法, test是正则对象上的方法。下面看具体的图示:5b3dc4c9e5554a9b85027cb2cff9cf1e.png

匹配单字符

  • /reg/ 可以直接匹配具体的字符串 reg。
  • /[arzy]/ 中的中括号[] 则代表匹配 arzy 中的任意单个字符
  • /[f-h]/ 中的中杠 - 代表匹配字母表顺序中 f 到 h 中的任意单个字符
  • /[1-3]/ 则代表匹配数字 1 到 3
0c22f25c0a8aadc7eb7abca6382d8830.png

正则选项

正则对象的后面也可以跟选项,Javascript中常用的选项有:
  • i - 代表忽略大小写
  • m - 代表多行匹配
  • g - 代表全局匹配(可以匹配多次)
51c31c34f14f05e32004834aeea68bd6.png

边界匹配

  • ^ - 代表匹配字符串的开头
  • $ - 代表匹配字符串的结尾
4320e7fe5ddfbdfb9b845da93ef99c5c.png

字符匹配

  • . - 可以匹配除了换行符外的任意字符
  • \d - 可以匹配任意数字
  • \D - 可以匹配任意非数字
  • \s - 匹配任意空白字符
  • \S - 匹配任意非空白字符
  • \n - 匹配换行
  • \w - 它其实就等同于 [A-Za-z0-9_],即匹配字母数字下划线
33fa960e8c4e5c308de040a2c2b3a24e.png

量词匹配

  • * - 匹配 0 次或多次
  • + - 匹配 1 次或多次
  • ? - 匹配 0 次或 1 次
  • {3} - 匹配 3 次
  • {2,4} - 匹配 2、3 或 4 次
  • {2,} - 匹配 2 次或多次
991ee35f55632b03525aec57714ae006.png

分组

()小括号在正则中代表分组,一般在 match方法中用来返回全匹配加上多个分组结果,如果使用了 g选项,则只返回全匹配。在小括号中你可以使用管道符号 |,它代表或de9bde256e447cb2d09337c3330ae27f.png

特殊符号

匹配特殊符号的时候需要加反斜杠\JS 中的特殊字符有 ^ $ \ . * + ? () [] {} |所以如果你需要匹配星号 *,就需要这样写:\*89726bfd582fe09a5d760dea669edaa4.png

取非匹配

匹配除了某个字符的任意字符,需要在中括号[]中使用 ^至此 ^具有两个含义:
  • 如果用于正则表达式的开头,代表匹配字符串的开头
  • 如果用于中括号 [] 内部,则代表匹配非此字符
27e8a6f7f8c5c992ee8cba944040eb81.png

结语

上面只是介绍了正则表达式中的基本用法,在日常开发中基本就够用了。更深入的用法比如贪婪和懒惰、零宽断言和捕获,感兴趣的小伙伴可以自行学习~正则很强大,但是也不能滥用。如果你写出了一个很复杂的只有你能看懂的正则,更好的做法是不使用正则去实现它~

参考链接:

Intro to Regex for Web DevelopersSegmentFault 社区链接:https://segmentfault.com/a/1190000021145901
- END -b2c90f4bd6b8a40fe48a45c575ee9d92.png



推荐阅读
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • 小程序wxs中的时间格式化以及格式化时间和date时间互转
    本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
  • 巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ... [详细]
  • splitjava的简单介绍
    本文目录一览:1、Javasplit方法2、 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文介绍了在Java中检查字符串是否仅包含数字的方法,包括使用正则表达式的示例代码,并提供了测试案例进行验证。同时还解释了Java中的字符转义序列的使用。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 1.Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时 ... [详细]
  • 这期内容当中小编将会给大家带来有关如何在php表单中使用正则表达式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
author-avatar
bai小白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有