HarmonyOS鸿蒙Next中这个正则怎么写啊,只能由英文、数字、下划线和减号组成,且必须在6–20位字符之间
HarmonyOS鸿蒙Next中这个正则怎么写啊,只能由英文、数字、下划线和减号组成,且必须在6–20位字符之间 这个正则怎么写啊,只能由英文、数字、下划线和减号组成,且必须在 6–20 位字符之间,求大佬解答
你好,可以试试下面的正则:支持英文大小写、数字、_、- 且在6-20位。
const regx = /^[a-zA-Z0-9_\-]{6,20}$/
//测试
const result = regx.test('aaaa')
const result1 = regx.test('aaa55a')
const result2 = regx.test('a;eaaa')
const result3 = regx.test('aafdafdsa0-i=aa')
const result4 = regx.test('aa_-dk3aa')
const result5 = regx.test('aa//deeaa')
更多关于HarmonyOS鸿蒙Next中这个正则怎么写啊,只能由英文、数字、下划线和减号组成,且必须在6–20位字符之间的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
TextArea({ placeholder: '', text: "" })
.onWillInsert((info: InsertValue) => {
const regx = /^[a-zA-Z0-9_\-]{6,20}$/
if (regx.test(String(info.insertValue))) {
return true
} else {
return false
}
})
感谢大佬,可以了,
正则表达式:^[A-Za-z0-9_-]{6,20}$
关键点解析:
字符范围控制
[A-Za-z0-9_-]表示允许:
英文大小写字母(A-Z, a-z)
数字(0-9)
下划线(_)
减号(-)
长度控制
{6,20}限定字符总数在6到20位之间
边界控制
^和$用于严格匹配整个字符串,避免出现部分匹配的情况
代码示例:
// 校验BundleName中的片段(非完整BundleName)
const reg = /^[A-Za-z0-9_-]{6,20}$/;
console.log(reg.test("Harmony_OS-3")); // true
console.log(reg.test("123test")); // true
console.log(reg.test("dev@123")); // false(包含非法字符@)
console.log(reg.test("abc")); // false(长度不足)
^[a-zA-Z0-9_-]{6,20}$
- ^ - 字符串开始
- [a-zA-Z0-9_-] - 允许:英文字母(大小写)、数字、下划线、减号
- {6,20} - 长度 6-20 个字符
- $ - 字符串结束
要匹配由英文(大小写)、数字、下划线和减号组成,且长度在6到20位字符之间的字符串,可以使用以下正则表达式:
正则表达式:^[a-zA-Z0-9_-]{6,20}$
说明:
- 字符范围:
[a-zA-Z]:匹配大小写英文字母。0-9:匹配数字。_和-:匹配下划线和减号(减号放在字符类末尾,无需转义)。
- 长度限制:
{6,20}:限制匹配的字符数在6到20位之间(包含6和20)。
- 边界匹配:
^:匹配字符串开头。$:匹配字符串结尾。- 确保整个字符串完全符合规则,没有额外字符。
在HarmonyOS鸿蒙Next中,使用正则表达式匹配6-20位英文、数字、下划线或减号:^[a-zA-Z0-9_-]{6,20}$。
在HarmonyOS Next中,你可以使用以下正则表达式来匹配“只能由英文、数字、下划线和减号组成,且长度在6到20位之间”的字符串:
^[a-zA-Z0-9_-]{6,20}$
表达式解析:
^:匹配字符串的开始位置[a-zA-Z0-9_-]:字符集,匹配:a-z:小写英文字母A-Z:大写英文字母0-9:数字_:下划线-:减号(连字符)
{6,20}:限定前面的字符集出现6到20次$:匹配字符串的结束位置
使用示例:
// 在ArkTS中的使用示例
const pattern: string = '^[a-zA-Z0-9_-]{6,20}$';
const regex: RegExp = new RegExp(pattern);
// 测试字符串
const testStr1: string = 'user_123'; // 8位,符合要求
const testStr2: string = 'ab-12'; // 5位,不符合要求
const testStr3: string = 'user@name'; // 包含@,不符合要求
console.log(regex.test(testStr1)); // true
console.log(regex.test(testStr2)); // false
console.log(regex.test(testStr3)); // false
这个正则表达式确保了字符串从开始到结束都只包含允许的字符,并且长度严格控制在6到20个字符之间。


