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

yizhihongxing

关于“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日

相关文章

  • 详解JavaScript数组过滤相同元素的5种方法

    详解JavaScript数组过滤相同元素的5种方法 在实际应用中,我们经常会使用数组来存储一些数据。有时候我们需要从这些数据中快速过滤出相同元素,这时候就需要用到数组去重的方法。本文将详细介绍5种常见的JavaScript数组去重方法。 1.使用Set ES6中新增了Set对象,可以帮我们去掉数组中的重复项。我们将数组转换为Set对象,再把Set对象转换回数…

    JavaScript 2023年5月27日
    00
  • JavaScript的for循环中嵌套一个点击事件的问题解决

    JavaScript中的for循环常常被用来遍历一个数据集合中的元素,但是在处理一些特殊场景下,我们需要在循环中嵌套一个点击事件,来对每个元素绑定一个点击事件,实现与该元素相关的操作。这时候,就会面临一些问题,比如嵌套点击事件的作用域问题、如何传入循环变量等。下面是解决这个问题的完整攻略。 问题描述 在JavaScript的for循环中嵌套一个点击事件,绑定…

    JavaScript 2023年5月27日
    00
  • AJAX 支持搜索引擎问题分析

    AJAX 支持搜索引擎问题分析 搜索引擎可以的爬行器(spider)抓取网站的数据,并将其存储在搜索引擎的数据库中。搜索引擎将这些数据从数据库中检索出来以满足用户的查询需求。然而,一些网站是使用了 AJAX 技术来实现异步请求的,这可能会导致搜索引擎无法获取到这些网站的数据,而无法对其进行索引。 要解决这个问题,我们需要做一些改变,以便搜索引擎可以正确地获得…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript中jQuery和Ajax以及JSONP的联合使用

    详解JavaScript中jQuery和Ajax以及JSONP的联合使用 概述 在现代前端开发中,通过AJAX技术可以实现无需整页刷新的异步加载数据,从而提升用户体验。而jQuery作为目前最流行的JavaScript库,为我们提供了非常便捷的Ajax操作API。除此之外,由于浏览器的同源策略,我们需要借助JSONP跨域获取到其他域名下的数据,在此过程中jQ…

    JavaScript 2023年6月11日
    00
  • 将中国标准时间转换成标准格式的代码

    下面是将中国标准时间转换成标准格式的代码的完整攻略: 1. 了解中国标准时间的格式 中国标准时间(China Standard Time)的格式为:YYYY-MM-DD HH:mm:ss。 其中,YYYY表示年份,MM表示月份,DD表示日期,HH表示小时数(24小时制),mm表示分钟数,ss表示秒数。 2. 使用Python的datetime库转换时间格式 …

    JavaScript 2023年5月27日
    00
  • DOM基础教程之使用DOM控制表单

    下面是对“DOM基础教程之使用DOM控制表单”的详细讲解: 基础概念 DOM (Document Object Model) 是文档对象模型的缩写,它是一种描述 HTML 文档结构的方式,可以通过 JavaScript 代码来操作 HTML 页面。 表单是 HTML 中常见的一种交互方式,用户可以通过表单向服务器提交数据,表单中的各个元素都是可以使用 DOM…

    JavaScript 2023年6月10日
    00
  • gulp-htmlmin压缩html的gulp插件实例代码

    下面是“gulp-htmlmin压缩html的gulp插件实例代码”的完整攻略。 什么是gulp-htmlmin gulp-htmlmin 是一个用于压缩 HTML 文件的 Gulp 插件。 安装gulp-htmlmin 在使用 gulp-htmlmin 之前,需要先安装 Gulp 和 gulp-htmlmin,可以使用以下命令安装: npm install…

    JavaScript 2023年6月10日
    00
  • js取整数、取余数的方法

    下面是详细讲解“js取整数、取余数的方法”的完整攻略,希望能对您有所帮助。 取整数的方法 在Javascript中,我们可以使用以下方法来取整数部分: Math.floor() Math.floor()方法返回一个小于或等于给定数字的最大整数值。该方法向下舍入并返回值是比指定数字小的最大整数。 Math.floor(4.9); // 4 Math.floor…

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