正则表达式基本语法及表单验证操作详解【基于JS】

正则表达式基本语法及表单验证操作详解 [基于JS]

什么是正则表达式

正则表达式(Regular Expression),又称规则表达式、常规表示式、正规表示法、正则表示法,简称正则表达式,在计算机科学中,是用来描述、匹配一系列符合某个规则的字符串的表达式。常用于搜索、替换或验证文本。

正则表达式的基本语法

字符类

  • [abc] 匹配a、b或c
  • [^abc] 除a、b、c外均可匹配
  • [a-zA-Z0-9] 匹配所有字母和数字
  • [^a-zA-Z0-9] 匹配所有非字母和数字

字符集合

  • . 匹配任意字符
  • \d 匹配数字,等价于[0-9]
  • \D 匹配非数字,等价于[^0-9]
  • \w 匹配单词字符,等价于[a-zA-Z0-9]
  • \W 匹配非单词字符,等价于[^a-zA-Z0-9]
  • \s 匹配空白字符,包括空格、制表符、换行符等
  • \S 匹配非空白字符

数量词

  • a? 匹配0个或1个a
  • a* 匹配0个或多个a
  • a+ 匹配1个或多个a
  • a{n} 匹配n个a
  • a{n,} 匹配至少n个a
  • a{n,m} 匹配n至m个a

边界匹配

  • ^ 匹配行的起始位置
  • $ 匹配行的结束位置
  • \b 匹配单词边界
  • \B 匹配非单词边界

分组和引用

  • (expr) 匹配expr,并捕获匹配的子串到缓冲区中
  • (?:expr) 匹配expr,但不捕获匹配的子串
  • (?=expr) 匹配expr前面的位置
  • (?<=expr) 匹配expr后面的位置

正则表达式的使用

创建正则表达式对象

通过在JavaScript中使用RegExp对象创建正则表达式,语法如下:

var regex = new RegExp(pattern, flags);

其中,pattern表示正则表达式的模式,可以是字符串,也可以是RegExp对象,flags表示正则表达式的匹配规则,如:

  • i:忽略大小写
  • g:全局匹配
  • m:多行匹配

示例:

// 匹配所有数字
var regex = new RegExp(/\d/g);

// 忽略大小写匹配字符串
var regex = new RegExp('hello', 'i');

正则表达式的方法

RegExp对象提供了一些方法,用于对字符串进行模式匹配:

  • test(str):判断字符串str是否匹配正则表达式,返回Boolean值
  • exec(str):在字符串str中搜索匹配正则表达式的第一个子串,返回一个数组对象,包含匹配的子串、捕获组、匹配位置等信息。如果没有匹配项,返回null。

示例:

// 判断手机号码是否符合规范
var regex = new RegExp(/^1[34578]\d{9}$/);
var phoneNumber = '13912345678';
if (regex.test(phoneNumber)) {
    console.log('手机号码正确');
} else {
    console.log('手机号码错误');
}

// 提取URL中的协议
var regex = new RegExp(/^(\w+):\/\//);
var url = 'http://www.example.com/index.html';
var matches = regex.exec(url);
console.log(matches[1]); // 'http'

正则表达式的用途

表单验证

正则表达式可以用来验证表单数据的输入是否符合规范,例如:

// 验证电子邮件地址
var regex = new RegExp(/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/);
var email = 'john@example.com';
if (!regex.test(email)) {
    console.log('邮件地址错误');
}

// 验证身份证号码
var regex = new RegExp(/^\d{6}(18|19|2\d)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[0-1])\d{3}[\dX]$/);
var idCard = '310101199001011234';
if (!regex.test(idCard)) {
    console.log('身份证号码错误');
}

字符串操作

正则表达式可以用来搜索、替换字符串中的子串,例如:

// 将空格替换为逗号
var regex = new RegExp(/\s+/);
var text = 'This is a sample text.';
var result = text.replace(regex, ',');
console.log(result); // 'This,is,a,sample,text.'

// 判断字符串是否以数字开头
var regex = new RegExp(/^\d/);
var text = '123abc';
if (regex.test(text)) {
    console.log('字符串以数字开头');
} else {
    console.log('字符串不以数字开头');
}

总结

正则表达式是一种十分强大的工具,可以用来描述、搜索、替换符合某种规则的文本。在JavaScript中使用RegExp对象创建正则表达式,并使用其方法对字符串进行匹配。在实际应用中,正则表达式常用于表单验证、字符串操作、文本解析等方面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:正则表达式基本语法及表单验证操作详解【基于JS】 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • vue中如何获取当前路由地址

    获取当前路由地址是我们在Vue开发中经常会用到的一个功能。可以通过Vue Router提供的$router.currentRoute属性来获取当前路由信息,包括路由地址、参数等。 首先需要在Vue组件中先引入Vue Router: import VueRouter from ‘vue-router’ Vue.use(VueRouter) 然后,就可以在Vue…

    JavaScript 2023年6月11日
    00
  • iframe 父窗口和子窗口相互的调用方法集锦

    当我们在网页中需要引用其他网页或第三方组件时,就可以使用iframe标签来嵌入其他页面。使用iframe标签可以让页面显得更加动态,同时也能添加一些新的功能。本文将详细讲解iframe父窗口和子窗口相互调用的方法。 iframe 的基本用法 在HTML中,使用iframe标签可以将一个网页嵌入到另一个网页中。 例如: <html> <hea…

    JavaScript 2023年6月10日
    00
  • 纯javascript判断查询日期是否为有效日期

    针对“纯javascript判断查询日期是否为有效日期”的问题,我给出如下攻略: 1.判断规则 要判断日期是否有效,需要先确定日期的格式。在常见的日期格式中,比较常用的是以下三种: 年月日格式:如2022-07-01; 月日年格式:如07/01/2022; 日月年格式:如01.07.2022。 无论哪种日期格式,都需要满足一些规则才能算是有效的日期。下面列出…

    JavaScript 2023年5月27日
    00
  • JScript的条件编译

    JScript条件编译是一种用于限定JScript代码在不同平台或环境下执行的方法,它可以通过编译器指令来控制代码的编译或排除,这对于处理不同浏览器或操作系统上的兼容性问题非常有用。 基本语法 JScript条件编译使用如下的语法: /*@if [condition]*/ // code to evaluate if condition is true /*…

    JavaScript 2023年6月11日
    00
  • 浅谈layui 绑定form submit提交表单的注意事项

    浅谈layui 绑定form submit提交表单的注意事项 简介 Layui是一个简洁易用、界面优美的前端UI框架,由于其易于上手,成为了很多前端工程师首选框架之一。在Layui中,表单提交是一个常见的操作,而绑定表单提交的事件则是经常使用到的操作。本文将会简单介绍在Layui中,绑定form submit提交表单的注意事项。 使用方式 通常情况下,在La…

    JavaScript 2023年6月10日
    00
  • 理解Angular数据双向绑定

    我们来详细讲解理解Angular数据双向绑定的完整攻略。数据双向绑定是Angular的核心功能之一,它可以让我们轻松地在模板中展示不同的值,同时也能让用户对输入的值做出及时的响应。以下是学习该功能的完整攻略: 了解Angular的数据双向绑定概念 数据双向绑定是指将模板中的值和组件中的属性绑定在一起,使得属性的变化会自动地反映在模板上,同时模板中的值的改变也…

    JavaScript 2023年6月11日
    00
  • layui插件表单验证提交触发提交的例子

    下面是关于“layui插件表单验证提交触发提交的例子”的完整攻略: 1. 简介 Layui是一款轻量级、易扩展、特别适合动态界面的前端UI框架,提供全面的组件和功能,并且提供免费的开源许可,可以节省很多开发时间与成本。在Layui中,表单验证是组件中非常重要的功能,可以保证表单提交数据的正确性。 2. 表单验证 2.1. 表单验证插件 Layui表单验证插件…

    JavaScript 2023年6月10日
    00
  • JavaScript 节流函数 Throttle 详解

    JavaScript 节流函数 Throttle 详解 什么是节流函数 函数节流是一种通过控制函数执行频率的技术,可以让我们控制一个函数在一段时间时间内执行多少次。它可以解决一些频繁触发事件的问题,例如页面滚动的触发事件。 为何需要使用节流函数 在一些需要频繁执行的L函数中,比如页面滑动事件,如果不做任何优化处理,就会导致多次重复计算、频繁造成 DOM 渲染…

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