JavaScript 正则表达式与字符串查找方法

关于“JavaScript 正则表达式与字符串查找方法”的攻略,可以分为以下三部分进行讲解。

一、正则表达式

1.1 基本语法

正则表达式是一个字符串模式,用于匹配和操作文本。在 JavaScript 中,可以使用两种方式创建正则表达式:字面量和构造函数。

字面量的形式为 /pattern/flags,其中 pattern 表示匹配的模式,flags 表示正则表达式的修饰符。

例如:

let reg = /abc/gi;  // 匹配包含 abc 的字符串,全局、不区分大小写

构造函数的形式为 new RegExp(pattern, flags),其中 patternflags 与字面量中的含义相同。

例如:

let reg = new RegExp('abc', 'gi');  // 匹配包含 abc 的字符串,全局、不区分大小写

1.2 常用方法

在 JavaScript 中,常用的正则表达式方法有 test()exec()。它们都是 RegExp 对象的方法。

test() 方法用于测试字符串是否匹配某个正则表达式,返回布尔值。例如:

let reg = /abc/gi;  
let str = 'abcdefg';
console.log(reg.test(str));  // true

exec() 方法用于在字符串中查找匹配的内容,返回一个数组,该数组的第 0 项是整个正则表达式匹配到的内容,后续项是正则表达式中每个捕获组所匹配到的内容。如果没有找到匹配的内容,则返回 null。例:

let reg = /abc/gi;
let str = 'abcdefg abc';  
console.log(reg.exec(str));  // ["abc", "abc"]

二、字符串查找方法

2.1 indexOf()

indexOf() 方法用于在字符串中查找给定子字符串的位置,如果找到,返回该子字符串在字符串中首次出现的索引;如果没找到,返回 -1。例:

let str = 'hello world';
console.log(str.indexOf('world'));  // 6

2.2 lastIndexOf()

lastIndexOf() 方法与 indexOf() 方法类似,但是是从字符串的末尾向前查找。例:

let str = 'hello world';
console.log(str.lastIndexOf('o'));  // 7

2.3 includes()

includes() 方法用于判断字符串中是否包含指定的子字符串,返回布尔值。例:

let str = 'hello world';
console.log(str.includes('world'));  // true

三、示例说明

3.1 正则表达式示例

例如,我们要从一个字符串中匹配所有的数字,并把它们分别打印出来。可以使用正则表达式来实现。如下所示:

let str = 'abc123xyz456';
let reg = /\d+/g;
let result = null;
while ((result = reg.exec(str))) {
  console.log(result[0]);
}

上述代码中,/\d+/g 表示匹配字符串中的数字,result[0] 表示匹配到的整个数字。

3.2 字符串查找方法示例

例如,我们要在一个文章列表中查找包含指定关键字的文章,并将它们高亮显示。可以使用 indexOf() 和字符串的截取方法 substring() 来实现。如下所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>文章列表</title>
    <style>
      .highlight {
        background-color: yellow;
      }
    </style>
  </head>
  <body>
    <ul>
      <li>JavaScript 正则表达式与字符串查找方法</li>
      <li>CSS 媒体查询与响应式设计</li>
      <li>HTML5 强化型表单元素</li>
    </ul>
    <script>
      let keyword = '正则表达式';
      let ul = document.querySelector('ul');
      let lis = ul.getElementsByTagName('li');
      for (let i = 0, len = lis.length; i < len; i++) {
        let li = lis[i];
        if (li.innerText.indexOf(keyword) !== -1) {
          li.innerHTML = li.innerHTML.replace(keyword, '<span class="highlight">' + keyword + '</span>');
        }
      }
    </script>
  </body>
</html>

上述代码中,我们使用 indexOf() 方法查找每个文章标题中是否包含指定的关键字,如果包含,使用 replace() 方法将关键字替换为带有高亮样式的关键字。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 正则表达式与字符串查找方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • JS实现轮播图效果的3种简单方法

    JS实现轮播图效果的3种简单方法 1. 利用定时器来实现轮播图效果 首先,我们需要先定义图片数组,以便进行遍历,设置一个计数器,每隔一段时间,计数器加1,通过计数器来更改图片。 HTML代码: <div id="slider"> <img src="img1.jpg" alt="图片一&qu…

    JavaScript 2023年6月11日
    00
  • Js利用console计算代码运行时间的方法示例

    当我们需要测试我们写的代码的运行时间以找到性能瓶颈时,可以使用JavaScript中的console对象来帮助我们计算代码运行的时间。下面是使用console计算代码运行时间的方法示例及其详细攻略: 显式地调用console.time()方法和console.timeEnd()方法 console.time()方法可以起到计时的作用,它需要传入一个唯一的标识…

    JavaScript 2023年5月27日
    00
  • javascript巧用eval函数组装表单输入项为json对象的方法

    下面是详细讲解“javascript巧用eval函数组装表单输入项为json对象的方法”的完整攻略。 简介 在 Web 开发中,我们常常需要将用户在表单中输入的数据组装成 JSON 格式发送给后台进行处理。在传统的方法中,我们需要对每个表单元素逐一获取 value 值并组装成一个 JSON 对象,这种方式虽然可行,但显然效率较低。本文介绍一种巧用 eval …

    JavaScript 2023年5月27日
    00
  • JavaScript 中的无穷数(Infinity)详解

    那么首先需要明确的是,在 JavaScript 中,Infinity 是指表示正无穷大的数字常量。它比任何数都大,包括自身。同时,JavaScript 也提供了一个负无穷大的常量,即-Infinity。下面,我将会详细讲解 Infinity 在 JavaScript 中的应用及示例。 什么是 Infinity? Infinity 是一个 JavaScript…

    JavaScript 2023年5月27日
    00
  • JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)

    JS数组操作是对数组进行增加、删除、翻转、转字符串、取索引、截取、剪接和数组合并等常见操作。 增加操作 数组的增加操作包括push和unshift,push用于在数组末尾添加一个或多个元素,unshift用于在数组开头添加一个或多个元素。示例如下: let arr = [1, 2, 3]; // push arr.push(4); console.log(a…

    JavaScript 2023年5月27日
    00
  • JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)

    【JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)】 本篇笔记主要介绍ECMAScript中的其他运算符,包括位运算符、三元操作符以及删除操作符等。 位运算符 位运算符是一种针对二进制数的运算,可以操作二进制数的每一位。在JavaScript中,共有6种位运算符: 按位非(~):按位取反运算符,将每一位二进制数的1换成0,…

    JavaScript 2023年5月27日
    00
  • 一文带你理解JavaScript中的函数式编程

    “一文带你理解JavaScript中的函数式编程”的完整攻略 什么是函数式编程? 函数式编程是一种编程范式,它将计算机程序看作一系列数学函数的组合,避免使用共享状态和可变数据,通过数据不可变和函数无副作用的特性实现函数的组合和复用。JavaScript原生支持函数式编程,在近年来的JavaScript开发中也越来越普遍。 函数式编程的特点 函数是一等公民:函…

    JavaScript 2023年5月27日
    00
  • JavaScript style对象与CurrentStyle对象案例详解

    让我们来讲解一下“JavaScript style对象与CurrentStyle对象案例详解”的完整攻略。 什么是style对象? 在前端开发中,style对象是经常用到的一个对象。我们可以使用style对象来获取或修改指定元素的样式属性。通过style对象,我们可以直接通过JavaScript代码来修改网页的样式效果,而无需通过css文件修改。 如何获取s…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部