
JavaScript 实现判断一个全是小写字母的字符串是否符合如下规则
发布日期:2021-05-10 22:43:42
浏览次数:26
分类:精选文章
本文共 1589 字,大约阅读时间需要 5 分钟。
题干:判断一个全是小写字母的字符串是否符合如下规则
- 1.至少包含一个元音字母;
- 2.不能有三个连续的字母都是元音字母;
- 3.不能有三个连续的字母都是辅音字母;
- 4.不能有两个连续的字母是一样的,但是 e 字母和 o 字母除外。
说明:
元音字母为:a, e, i, o, u, 其他都为辅音字母。方法一:
function isMatching(str) { if (typeof str !== 'string') { console.error("请传入字符串"); return false; } if (!isVowel(str)) { console.log("第1条不匹配"); return false; } if (!rulesTwo(str)) { console.log("第2或3条不匹配"); return false; } if (!rulesThree(str)) { console.log("第4条不匹配"); return false; } return true;}
函数说明:
isVowel
检查字符串是否包含任意元音字母。rulesTwo
检查是否存在三个连续的元音字母。rulesThree
检查是否存在三个连续的辅音字母。rulesThree
进一步检查连续相同字母,除了 e 和 o。 方法二:
// 正则表达式方法// 至少包含一个元音字母const class1 = new RegExp('[aeiou]', 'ig');// 三元音连续不允许const class2 = new RegExp('[aeiou]{3}', 'ig');// 三辅音连续不允许const class3 = new RegExp('[^aeiou]{3}', 'ig');// 不能有连续相同字母(以o与e无关)const class4 = new RegExp('([^ao]+)\\1', 'ig');function test(value) { const msg = []; if (!class1.test(value)) { msg.push('至少包含一个元音字母'); } if (class2.test(value)) { msg.push('不能连续三个元音字母'); } if (class3.test(value)) { msg.push('不能连续三个辅音字母'); } if (class4.test(value)) { msg.push('不能有两个连续相同字母,除了e和o'); } return msg.length === 0;}
测试结果:
测试字符串 "aq"
返回:{ value: 'aq', msg: [] }
测试字符串 "aaq"
返回:{ value: 'aaq', msg: ['不能连续三个辅音字母'] }
测试字符串 "qqq"
返回:{ value: 'qqq', msg: ['不能连续三个辅音字母'] }
测试字符串 "aaa"
返回:{ value: 'aaa', msg: ['不能连续三个元音字母'] }
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月11日 07时38分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
@ControllerAdvice用法
2023-01-23
#VERDI# 关于Verdi使用的几个常用技巧整理
2023-01-23
@Resource注解的使用
2023-01-23
@ResponseBody 和 @RequestBody
2023-01-23
A + B 九度oj
2023-01-23
A20地址线
2025-03-28
abaqus质量缩放系数取值_ABAQUS的质量缩放
2025-03-28
#systemverilog# 关于随机约束之 数组类型数据
2023-01-23
Accessibility
2023-01-23
08-信息收集之端口收集(总结版)
2023-01-23
15种下载文件的方法&文件下载方法汇总&超大文件下载
2023-01-23
anaconda、python卸载后重装以及anaconda--443
2023-01-23
AWVS工具太顶了,漏洞扫描工具AWVS介绍及安装教程
2023-01-23
CentOS 系列:CentOS 7文件系统的组成
2023-01-23
CSDN----Markdown编辑器
2023-01-23