鸿蒙harmonyOS正则表达式使用笔记

 更新时间:2026年06月24日 10:49:23   作者:一只小风华~  
在鸿蒙开发中正则表达式是用于处理文本的强大工具,它提供了一种灵活且高效的方式来匹配、查找、替换和验证字符串中的特定模式,这篇文章主要介绍了鸿蒙harmonyOS正则表达式使用的相关资料,需要的朋友可以参考下

前言

从给出的文本中,按照既定的相关规则,匹配出符合的数据,其中的规则就是正则表达式,使用正则表达式,可以使得我们用简洁的代码就能实现一定复杂的逻辑,比如判断一个邮箱账号是否符合正常的邮箱账号,再比如判断一个手机号是否正常的手机号,等等,正因为有了正则,得以让文本处理起来更加的简单。

日常开发中主要用来做三件事:匹配、替换、提取。

  • 手机号表单要求用户只能输入11位的数字 (匹配)
  • 过滤掉页面内容中的一些敏感词(替换)
  • 从字符串中获取我们想要的特定部分(提取)等

基本使用 

基础步骤;

  • 定义正则
  • 使用正则
  • 定义正则
// 方式 1:简写
const res1: RegExp = /ArkTS/

// 方式 2:通过实例化的方式创建
const reg2: RegExp = new RegExp('ArkTS')

 1. 使用正则

  • test()方法 用来查看正则表达式与指定的字符串是否匹配
  • 如果正则表达式与指定的字符串匹配 ,返回true,否则false
console.log('web:', res.test('ArkTS')) // true
console.log('web:', res.test('Java')) // false

元字符

元字符指的是在正则表达式中,有特殊含义的符号

正则表达式中绝大多数的字符都是描述他们本身,比如:

/ArkTS/ // 表示 ArkTS 这 5 个字母

 有一些具有特殊含义的字符,可以极大的提高正则表达式的灵活性和功能,比如:

/[a-z]/ // 只能是 a-z中的字母

像上面的 [ ] , 就是元字符,接下来咱们来看看有哪些常用的元字符

边界符

则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符

边界符说明
Λ表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)

如果 ^ 和 $ 在一起,表示必须是精确匹配

// 元字符之边界符
// 1. 匹配开头的位置 ^
const reg = /^ArkTS/
console.log('res:', reg.test('ArkTS语法')) //true
console.log('res:', reg.test('学习ArkTS')) //false
console.log('res:', reg.test('学习ArkTS语法')) //false
console.log('res:', reg.test('Ar')) //false

// 2. 匹配结束的位置 $
const reg1 = /ArkTS$/
console.log('res:', reg1.test('ArkTS语法')) //false
console.log('res:', reg1.test('学习ArkTS')) //true
console.log('res:', reg1.test('学习ArkTS语法')) //false
console.log('res:', reg1.test('Ar')) //false

// 3. 精确匹配 ^ $
const reg2 = /^ArkTS$/
console.log('res:', reg2.test('ArkTS语法')) //false
console.log('res:', reg2.test('学习ArkTS')) //false
console.log('res:', reg2.test('学习ArkTS语法')) //false
console.log('res:', reg2.test('ArkTS')) //true
console.log('res:', reg2.test('Ar')) //false
console.log('res:', reg2.test('ArkTSArkTS')) //false

量词

量词用来设定某个模式的重复次数。

量词说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复 n 次
{n,}重复 n 次或更多次
{n,m}重复 n 到 m 次

基于基础模版来看看具体的效果:

// 元字符之量词
// 1. * 重复次数 >= 0 次
const reg1 = /^w*$/
console.log('res:', reg1.test('')) //true
console.log('res:', reg1.test('w')) //true
console.log('res:', reg1.test('ww')) //true
console.log('res:', '-----------------------')

// 2. + 重复次数 >= 1 次
const reg2 = /^w+$/
console.log('res:', reg2.test('')) //false
console.log('res:', reg2.test('w')) //true
console.log('res:', reg2.test('ww')) //true
console.log('res:', '-----------------------')

// 3. ? 重复次数 0 || 1
const reg3 = /^w?$/
console.log('res:', reg3.test('')) //true
console.log('res:', reg3.test('w')) //true
console.log('res:', reg3.test('ww')) //false
console.log('res:', '-----------------------')

// 4. {n} 重复 n 次
const reg4 = /^w{3}$/
console.log('res:', reg4.test('')) // false
console.log('res:', reg4.test('w')) // false
console.log('res:', reg4.test('ww')) // false
console.log('res:', reg4.test('www')) //true
console.log('res:', reg4.test('wwww')) // false
console.log('res:', '-----------------------')

// 5. {n,} 重复次数 >= n
const reg5 = /^w{2,}$/
console.log('res:', reg5.test('')) //false
console.log('res:', reg5.test('w')) //false
console.log('res:', reg5.test('ww')) //true
console.log('res:', reg5.test('www')) //true
console.log('res:', '-----------------------')

// 6. {n,m} n =< 重复次数 <= m
const reg6 = /^w{2,4}$/
console.log('res:', reg6.test('w')) //false
console.log('res:', reg6.test('ww')) //true
console.log('res:', reg6.test('www')) //true
console.log('res:', reg6.test('wwww')) //true
console.log('res:', reg6.test('wwwww')) //false

范围

表示字符的范围,定义的规则限定在某个范围,比如只能是英文字母,或者数字等等,用表示范围。

范围说明
[abc]匹配包含的单个字符。也就是只有all bllc 这三个单字符返回true,可以理解为多选1
[a-z]连字符。来指定字符范围。[ a-z ]表示 a到226个英文字母
[^abc]取反符。[^a-z]匹配除了小写字母以外的字符
// 元字符之范围 []

// 1. [abc] 匹配包含的单个字符, 多选1
const reg1 = /^[abc]$/
console.log('res:', reg1.test('a')) //true
console.log('res:', reg1.test('b')) //true
console.log('res:', reg1.test('c')) //true
console.log('res:', reg1.test('d')) //false
console.log('res:', reg1.test('ab')) //false
console.log('-----------');

// 2. [a-z] 连字符 单个
const reg2 = /^[a-z]$/
console.log('res:', reg2.test('a')) //true
console.log('res:', reg2.test('p')) //true
console.log('res:', reg2.test('0')) //false
console.log('res:', reg2.test('A')) //false
console.log('-----------');

// 3. [^a-z] 取反符
const reg5 = /^[^a-z]$/
console.log('res:', reg5.test('a')) //false
console.log('res:', reg5.test('A')) //true
console.log('res:', reg5.test('么')) //true
console.log('-----------');

// 4.想要包含小写字母,大写字母 ,数字
const reg3 = /^[a-zA-Z0-9]$/
console.log('res:', reg3.test('B')) //true
console.log('res:', reg3.test('b')) //true
console.log('res:', reg3.test('9')) //true
console.log('res:', reg3.test(',')) //false
console.log('-----------');

字符类

某些常见模式的简写方式,区分字母和数字

字符类说明
\d匹配0-9之间的任一数字,相当于[0-9]
\D匹配所有0-9以外的字符,相当于[^0-9]
\w匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
\W除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
\s匹配空格(包括換行符、制表符、空格符等),相等于[\t\r\n\v\f]
\S匹配非空格的字符,相当于[^\t\r\n\v\f]

替换和修饰符 

字符串的 replace 方法,可以结合正则进行字符串的替换。

// 检索规则:文本、正则
// 替换内容:文本
// 返回值:替换之后的结果

字符串.replace(检索规则,替换内容)

// 替换和修饰符

const str = '欢迎大家学习ArkTS,相信大家一定能学好ArkTS!!!'

// 将 ArkTS 替换位 鸿蒙开发咋写? 分别用正则和字符串作为检索规则

使用正则结合修饰符可以实现大小写区分,是否匹配所有

修饰符说明
i单词 ignore 的缩写,正则匹配时字母不区分大小写
g单词 global 的缩写,匹配所有满足正则表达式的结果
// 替换和修饰符
const str = '欢迎大家学习ArkTS,相信大家一定能学好ArkTS!!!'
// replace 返回值是替换完毕的字符串
console.log(str.replace(/arkts/, '鸿蒙开发'))
//欢迎大家学习ArkTS,相信大家一定能学好ArkTS!!!

console.log(str.replace(/arkts/i, '鸿蒙开发')) 
//欢迎大家学习鸿蒙开发,相信大家一定能学好ArkTS!!!

console.log(str.replace(/arkts/gi, '鸿蒙开发')) 
//欢迎大家学习鸿蒙开发,相信大家一定能学好鸿蒙开发!!!

console.log(str.replace(/arkts/ig, '鸿蒙开发')) 
//欢迎大家学习鸿蒙开发,相信大家一定能学好鸿蒙开发!!!

总结 

到此这篇关于鸿蒙harmonyOS正则表达式使用的文章就介绍到这了,更多相关harmonyOS正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 正则表达式中的$分组使用示例详解

    正则表达式中的$分组使用示例详解

    正则表达式中的$符号通常用于表示字符串的结束位置,但当你在替换操作或者某些特殊上下文中提到 $ 后跟数字(如 $1, $2, etc.),这并不表示结束位置,而是引用之前正则表达式捕获组的内容,这篇文章主要介绍了正则表达式中的$分组使用示例详解,需要的朋友可以参考下
    2024-05-05
  • JS正则表达式基本用法(经典全)

    JS正则表达式基本用法(经典全)

    本篇是由脚本之家小编抽时间整理些关于js的正则表达式,内容非常详细,感兴趣的朋友可以参考下
    2015-09-09
  • JavaScript中正则表达式的概念与应用

    JavaScript中正则表达式的概念与应用

    这篇文章主要介绍了JavaScript中正则表达式的概念与应用的相关资料,需要的朋友可以参考下
    2017-10-10
  • 详解Linux中正则表达式的应用

    详解Linux中正则表达式的应用

    正则表达式是一种符号表示法,被用来识别文本模式。在某种程度上,它们与匹配文件和路径名的shell通配符比较相似,但其规模更大。许多命令行工具和大多数编程语言都支持正则表达式,以此来帮助解决操作文本的问题。
    2018-05-05
  • 一看就懂的正则表达式教程

    一看就懂的正则表达式教程

    正则表达式,是简单地字符的序列,可指定特定的搜索模式,下面这篇文章主要给大家介绍了一看就懂正则表达式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 正则表达式下全部符号解释说明

    正则表达式下全部符号解释说明

    正则表达式下全部符号,对于书写正则表达式的朋友一定要了解下,才能更好的发挥正则的作用于阅读别人的代码,先从基本来。
    2010-07-07
  • 如何快速学习正则表达式

    如何快速学习正则表达式

    在日常工作中,我们经常写正则表达式,比如在表单中经常用来验证用户输入的格式是否正确。接下来通过本文给大家介绍如何快速学习正则表达式,感兴趣的小伙伴一起学习吧
    2016-05-05
  • Js&Vbs正则表达式替换重复的字符

    Js&Vbs正则表达式替换重复的字符

    Js&Vbs正则表达式替换重复的字符...
    2006-12-12
  • JS 正则表达式判断各个浏览器代码详解

    JS 正则表达式判断各个浏览器代码详解

    学习了3天的正则了。也算几掌握了点基本功。所以把原来一直用别人的判断浏览器方法自己来写了个。
    2010-05-05
  • 关于表格的正则表达式讨论(表格)

    关于表格的正则表达式讨论(表格)

    [蓝色]关于表格的正则表达式讨论(表格)...
    2006-08-08

最新评论