HarmonyOS 鸿蒙Next:arkts中如何使用正则表达式

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:arkts中如何使用正则表达式

能否提供指导或demo 

4 回复
核心代码:

isNumeric(str: string): boolean {

// 不连续6位数字,且不重复的

// const regex = /^(?:(\d)(?!((?<=9)8|(?<=8)7|(?<=7)6|(?<=6)5|(?<=5)4|(?<=4)3|(?<=3)2|(?<=2)1|(?<=1)0){5})(?!\1{5})(?!((?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){5})){6}$/

// 不连续6位数字

const regex = /^(?:(\d)(?!((?<=9)8|(?<=8)7|(?<=7)6|(?<=6)5|(?<=5)4|(?<=4)3|(?<=3)2|(?<=2)1|(?<=1)0){5})(?!\\1{5})(?!((?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){5})){6}$/

// 使用正则表达式的test方法来检测字符串

return regex.test(str.trim());

}

如需要校验连续字符,如:123456

则需要直接对结果取反结果:

isNumeric方法 返回结果取个反,return !regex.test(str.trim());

也可以尝试换个思路,比如说将特殊字符排除在外

const reg = new RegExp('^[\u4e00-\u9fa50-9A-Za-z]*$'); 其中 \u4e00-\u9fa5标识汉字,0-9标识数字,A-Za-z标识大写小字母

更多关于HarmonyOS 鸿蒙Next:arkts中如何使用正则表达式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


直接用js的方法就行了

首先要描述一下你的使用场景,比如我的聊天应用里,文本里有[大笑]这种需要正则匹配表情图片的,我就处理了,如果是url和电话等,理论上text组件是可以自动识别处理的

在HarmonyOS鸿蒙Next的arkts(Ark UI Toolkit for Stage)中,使用正则表达式可以通过JavaScript的RegExp对象来实现。以下是如何在arkts中使用正则表达式的简要步骤:

  1. 创建正则表达式: 使用RegExp构造函数或正则表达式字面量语法来创建一个正则表达式对象。

    let regex = new RegExp('pattern');
    // 或者
    let regex = /pattern/;
    
  2. 测试匹配: 使用test方法来检查字符串是否匹配正则表达式。

    let str = 'your target string';
    let isMatch = regex.test(str);
    console.log(isMatch); // 输出布尔值
    
  3. 提取匹配项: 使用matchmatchAll方法来获取匹配项。

    let matches = str.match(regex);
    console.log(matches); // 输出匹配项数组
    
  4. 替换匹配项: 使用replace方法替换匹配项。

    let newStr = str.replace(regex, 'replacement');
    console.log(newStr); // 输出替换后的字符串
    

以上方法适用于arkts中的JavaScript环境。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部