String字符串匹配javascript 正则表达式

String字符串匹配javascript 正则表达式

什么是正则表达式

正则表达式是一种用来匹配、查找和替换文本的工具,它可以精确匹配一个或多个字符,也可以通过通配符匹配一类字符。在Javascript中,我们可以使用RegExp类来操作正则表达式。

正则表达式的基本语法

在 Javascript 中,正则表达式可以使用字面量或者RegExp类来创建。

使用字面量的方式:

var pattern = /pattern/flags;

使用RegExp类的方式:

var pattern = new RegExp('pattern', 'flags');

其中,pattern指正则表达式模式,flags为可选参数,用于指定正则表达式的修饰符,常见的修饰符有:i(忽略大小写)、g(全局搜索)、m(多行模式)。

对于正则表达式的模式,它可以使用一些普通字符和一些特殊字符来匹配不同的内容。以下是常用的正则表达式元字符:

元字符 描述
. 匹配任意单个字符,除了换行符
\s 匹配一个空白字符
\S 匹配一个非空白字符
\d 匹配一个数字
\D 匹配一个非数字字符
\w 匹配一个字母、数字或下划线
\W 匹配一个非字母、数字或下划线字符
^ 匹配字符串的开头
$ 匹配字符串的结尾
* 匹配前面的元素0个或多个
+ 匹配前面的元素1个或多个
? 匹配前面的元素0个或1个
{n} 匹配前面的元素n次
{n,} 匹配前面的元素至少n次
{n,m} 匹配前面的元素至少n次,但不超过m次
[...] 匹配方括号内的任何一个字符
[^...] 不匹配方括号内的任何一个字符

String字符串匹配正则表达式方法:match、search和replace

在 Javascript 中,String对象提供了三个方法来支持正则表达式操作:match()方法、search()方法和replace()方法。

match()方法

match()方法用于在字符串中查找与正则表达式匹配的子串,如果找到则返回一个数组,否则返回null。该方法可以接受一个正则表达式对象或一个字符串作为参数。

var str = 'Hello world!';
var result = str.match(/world/);
console.log(result); // output: ["world", index: 6, input: "Hello world!", groups: undefined]

match()方法返回的数组中包含了匹配到的子串、匹配到的子串在字符串中的起始位置(index)、原始字符串和具名捕获组等信息。

search()方法

search()方法用于在字符串中查找与正则表达式匹配的子串,如果找到则返回第一个匹配子串的索引,否则返回-1。该方法可以接受一个正则表达式对象或一个字符串作为参数。

var str = 'Hello world!';
var index = str.search(/world/);
console.log(index); // output: 6

search()方法只返回第一个匹配子串的索引,而不包含其他匹配信息。

replace()方法

replace()方法用于在字符串中替换与正则表达式匹配的子串,该方法的第一个参数可以是一个正则表达式对象或一个字符串,第二个参数可以是一个字符串或一个函数。如果第一个参数是字符串,则只会替换字符串的第一个匹配项,如果第一个参数是正则表达式,则会替换所有与正则表达式匹配的子串。

var str = 'Hello world!';
var newStr = str.replace(/world/, 'JavaScript');
console.log(newStr); // output: "Hello JavaScript!"

使用函数作为第二个参数可以对每个匹配到的子串进行复杂的操作。

var str = 'Javascript is the best language!';
var newStr = str.replace(/(\b\w+\b)/g, function(word) {
  return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
});
console.log(newStr); // output: "Javascript Is The Best Language!"

以上代码中,正则表达式\b\w+\b表示以单词边界为开始和结束的单词,使用函数对每个匹配到的单词进行首字母大写和其余字母小写的处理。

示例说明

示例1:匹配邮箱地址

var email = 'person@example.com';
var pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]{2,}$/;
if (pattern.test(email)) {
  console.log('邮箱地址格式正确');
} else {
  console.log('邮箱地址格式错误');
}

以上代码中,使用正则表达式/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]{2,}$/匹配邮箱地址。该正则表达式可以匹配以字母、数字、下划线或横杠开头,紧接着是一个@符号,然后是一个由字母、数字、下划线或横杠组成的域名部分,最后是一个由两个或更多字母组成的顶级域名部分。

示例2:解析URL参数

var url = 'https://www.example.com/index.html?key1=value1&key2=value2';
var params = {};
var pattern = /([^?&=]+)=([^&]+)/g;
url.replace(pattern, function(match, key, value){
  params[key] = value;
});
console.log(params); // output: { "key1": "value1", "key2": "value2" }

以上代码中,使用正则表达式/([^?&=]+)=([^&]+)/g匹配URL中的参数,把它们存储到一个对象params中,最后使用console.log()输出params对象。该正则表达式中,[^?&=]+表示匹配任意不包含?&=的字符,([^&]+)表示匹配任意不包含&的字符,/g修饰符表示全局匹配。同时,使用replace()方法将匹配到的参数的key和value依次存储到params对象中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:String字符串匹配javascript 正则表达式 - Python技术站

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

相关文章

  • 正则表达式详述 四

    以下是我对于“正则表达式详述 四”的完整攻略。 标题 正则表达式详述 四 正文 1. 前言 前三篇文章中,我们详细了解了正则表达式的基础知识以及常用语法规则。在本篇文章中,我们将进一步深入学习正则表达式的内容,包括元字符与文本字符的区分、捕获分组、非贪婪模式等内容。 2. 元字符与文本字符 在正则表达式中,匹配一个字符有两种方式:使用特定字符将其表示(即元字…

    JavaScript 2023年6月10日
    00
  • JavaScript数据类型的存储方法详解

    JavaScript数据类型的存储方法详解 1. JavaScript数据类型简介 在JavaScript中,共有以下七种数据类型: 原始类型:Number、String、Boolean、null、undefined、Symbol 引用类型:Object 2. 数据类型的存储方式 2.1 原始类型的存储方式 原始类型的数据直接存储在栈内存中,它们的值可以直接…

    JavaScript 2023年6月11日
    00
  • 浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总

    浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总 1. JS刷新框架中的其他页面 在JS刷新框架中,要刷新其他页面,可以使用以下代码: window.parent.location.reload(); 此代码可以重新加载父窗口中当前页面所在的框架集的所有页面。 同时,我们还可以利用window.open方法打开一个新的窗口,然后再用w…

    JavaScript 2023年6月11日
    00
  • js实现的美女瀑布流效果代码

    这里是“js实现的美女瀑布流效果代码”的完整攻略: 瀑布流效果简介 瀑布流效果(Waterfall Flow)是指像瀑布一样一列接一列的布局方式。随着页面滚动,页面中的图片会自动根据设置好的列数和间距排列,并且会动态加载。瀑布流效果是现代网站中十分流行的一种图片展示方式。 实现方法 瀑布流效果的实现方法比较多,包括纯CSS实现和JS实现。纯CSS实现的瀑布流…

    JavaScript 2023年6月11日
    00
  • Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置

    Vue.js 是当前最流行的前端框架之一,它非常适用于单页面应用(SPA),但是我们在开发过程中可能会遇到一个问题——页面滚动位置的恢复。因为 SPA 是通过 Ajax 变化实现的,不同页面的 URL 实际上是指向同一页面的不同状态,所以如果用户在一个页面滚动到中间,然后通过后退返回到上一个页面,那么页面滚动条会停留在顶部,而非停留在用户上次浏览的位置。为了…

    JavaScript 2023年6月11日
    00
  • js中递归函数的使用介绍

    JS中递归函数的使用介绍 什么是递归函数? 递归函数是指在函数定义中调用自身的函数。通过使用递归函数,可以将一个大问题逐渐分解为若干个小问题,从而更容易解决。递归函数是一个强有力的工具,它在许多编程语言中广泛使用。 如何使用递归函数? 最简单的递归函数定义只是一个条件判断和一个递归调用。如下所示: function recursiveFunc(param) …

    JavaScript 2023年5月27日
    00
  • JS作为值的函数用法示例

    JS作为值的函数用法示例即为将函数定义作为一个值来使用,可以将函数定义作为一个变量赋值给变量、集合或对象中的属性,也可以将函数作为一个参数传递给其他函数。下面是两个示例说明: 示例一:将函数作为参数传递给其他函数 // 定义一个函数 function sayHi(name) { console.log(‘Hi ‘ + name + ‘!’); } // 定义…

    JavaScript 2023年5月27日
    00
  • javascript表单验证 – Parsley.js使用和配置

    JavaScript表单验证是Web开发过程中一个非常重要的环节,可以用于确保用户在提交表单时输入的数据格式正确且符合预期,从而提高应用程序的稳定性和可用性。 Parsley.js是一个轻量级的JavaScript表单验证库,可以有效地帮助开发人员构建和配置表单验证规则。下面是一份Parsley.js的配置攻略: 步骤1:安装Parsley.js 首先,需要…

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