QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

JavaScript 正则表达式详解大全

日期:2025/03/31 17:22来源:未知 人气:58

导读:JavaScript中的正则表达式是一种强大的文本处理工具,它通过定义字符模式来匹配字符串中的特定部分。以下是关于JavaScript正则表达式的详细解释1. 基本概念正则表达式(Regular Expression):用于描述字符模式的对象,用于在字符串中查找、替换或提取符合某种规则的子串。元字符(Metacharacters):在正则表达式中有特殊含义的字符,如.、*、+等......

JavaScript中的正则表达式是一种强大的文本处理工具,它通过定义字符模式来匹配字符串中的特定部分。以下是关于JavaScript正则表达式的详细解释

1. 基本概念

  • 正则表达式(Regular Expression) :用于描述字符模式的对象,用于在字符串中查找、替换或提取符合某种规则的子串。
  • 元字符(Metacharacters) :在正则表达式中有特殊含义的字符,如.*+等。

2. 创建正则表达式

  • 字面量方式 :使用斜杠包围表达式,如/pattern/flags,例如/hello/i表示忽略大小写匹配“hello”。
  • 构造函数方式 :使用new RegExp()构造函数,如new RegExp("hello", "i")

    // 字面量方式 let regex1 = /hello/i;

    // 构造函数方式 let regex2 = newRegExp("hello", "i");

3. 常用方法

  • test():测试字符串是否满足正则表达式规则,返回布尔值。
  • search():执行搜索匹配,返回第一个匹配项的索引位置,找不到返回-1。
  • exec():在一个指定字符串中执行搜索匹配,返回一个结果数组或null。
  • match():检索字符串并返回匹配的结果,可以与全局标志一起使用。
  • replace():返回一个新字符串,其中的某些部分被替换为新的子字符串。

    let str = "Hello, world!"; let regex = /hello/i;

    // test() console.log(regex.test(str)); // true

    // search() console.log(str.search(regex)); // 0

    // exec() console.log(regex.exec(str)); // ["Hello"]

    // match() console.log(str.match(regex)); // ["Hello"]

    // replace() console.log(str.replace(regex, "Hi")); // "Hi, world!"

4. 修饰符

  • g :global,全文搜索。
  • i :ignore case,忽略大小写。
  • m :multiple lines,多行搜索。
  • 其他标志符 :如s(允许.匹配换行符)、u(使用Unicode码进行匹配)等。

    let str = "Hello\nworld"; let regex = /hello/gi; console.log(str.match(regex)); // ["Hello", "world"]

5. 断言与范围类

  • 正向肯定查找 ((?=...)):匹配前面的内容,同时要求后面的条件也成立。
  • 正向否定查找 ((?!...)):匹配前面的内容,但后面不能是指定的条件。
  • 反向肯定查找 ((?<=...)):匹配后面的内容,但前面的条件必须成立。
  • 反向否定查找 ((?<!...)):匹配后面的内容,但前面的条件不能成立。

    let str = "foo123bar"; let regex = /(?<=foo)\d+/; console.log(str.match(regex)); // ["123"]

6. 分组与引用

  • 分组 :使用圆括号()将正则表达式的一部分括起来,形成分组。
  • 反向引用 :在模式后面引用分组匹配的内容。

    let str = "John Doe"; let regex = /(\w+)\s(\w+)/; console.log(str.match(regex)); // ["John Doe", "John", "Doe"]

7. 示例与应用

校验数字

let numRegex = /^\d+$/; console.log(numRegex.test("12345")); // true console.log(numRegex.test("123a45")); // false

校验字符

let charRegex = /^[A-Za-z]+$/; console.log(charRegex.test("HelloWorld")); // true console.log(charRegex.test("Hello World")); // false

特殊需求

验证Email地址

let emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/; console.log(emailRegex.test("example@example.com")); // true console.log(emailRegex.test("example@example")); // false

验证URL

let urlRegex = /^(https?:\/\/)?([a-zA-Z0-9.-]+)(:[0-9]+)?(\/.*)?$/; console.log(urlRegex.test("http://www.example.com")); // true console.log(urlRegex.test("https://example")); // false

验证身份证号(假设为18位)

let idRegex = /^\d{17}[\dXx]$/; console.log(idRegex.test("123456789012345678")); // true console.log(idRegex.test("12345678901234567X")); // true console.log(idRegex.test("12345678901234567A")); // false

以上是关于JavaScript正则表达式的详细解释和示例代码。希望这些信息能帮助你更好地理解和使用JavaScript中的正则表达式。

JavaScript高级程序设计(第5版)京东好评率100%无理由退换京东配送官方店¥99.8购买

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告