判断是否包含数字
例如: 给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 false
输入:‘abc123’
输出: true
两种方法:
- 正则表达式:
function containsNumber(str) {
var reg = /\d/
return reg.test(str)
}
- 遍历:
function containsNumber(str) {
for(let i = 0; i < str.length; i++) {
if (str.indexOf(i) !== -1) {
return true
}
}
return false
}
检查重复字符串
例如:给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false
输入:‘rattler’
输出:true
方法一:采用正则表达式分组形式的反向引用。这个理解起来可能一头雾水,我们可以举个例子:
var reg = /(\w{3}) is \1/
reg.test('kid is kid') // true
reg.test('dik is dik') // true
reg.test('kid is dik') // false
reg.test('dik is kid') // false
该例子可以判断要检测的字符串是否中间为is,左右两边相同长度为3的字符串,如果满足,返回true,否则,返回false.所以很显然,如果要检测重复连续的字母,我们需要将is去掉,\w{3}改为[a-zA-Z]即可。
function containsRepeatingLetter(str) {
var reg = /([a-zA-Z])\1/
return reg.test(str)
}
方法二:常规for循环遍历方式:
function containsRepeatingLetter(str) {
var reg = /[a-zA-Z]/
for(let i = 0; i < str.length; i++) {
if (str[i] === str[i + 1] && reg.test(str[i])) {
return true
}
}
return false
}
判断是否以元音字母结尾
例如:给定字符串 str,检查其是否以元音字母结尾
1、元音字母包括 a,e,i,o,u,以及对应的大写
2、包含返回 true,否则返回 false
输入:‘gorilla’
输出:true
function endsWithVowel(str) {
// /i 为不区分大小写
var reg = /(a|e|i|o|u)$/i
return reg.test(str)
}
获取指定字符串
给定字符串 str,检查其是否包含 连续3个数字
1、如果包含,返回最先出现的 3 个数字的字符串
2、如果不包含,返回 false
输入:‘9876543’
输出:987
function captureThreeNumbers(str) {
var res = str.match(/(\d{3})/)
// console.log(res);
if (res) {
return res[0]
}
return false
}
// res输出为:
[ '987', '987', index: 0, input: '987654', groups: undefined ]
判断是否符合指定格式
例如: 给定字符串 str,检查其是否符合如下格式
1、XXX-XXX-XXXX
2、其中 X 为 Number 类型
function matchesPattern(str) {
var reg = /^(\d{3}-){2}\d{4}$/
return reg.test(str)
}
判断是否符合USD格式
给定字符串 str,检查其是否符合美元书写格式
1、以 $ 开始
2、整数部分,从个位起,满 3 个数字用 , 分隔
3、如果为小数,则小数部分长度为 2
4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3
输入:’$20,933,209.93’
输出:true
function isUSD(str) {
var reg = /^\$\d{1,3}(\,\d{3})*(\.\d{2})?$/
/**
* ^\$ 以$符号开头
* \d{1,3} 1-3位数字
* (\,\d{3})* 0个或多个, 3位数字
* (\.\d{2})? 0个或1个2位数字
*/
return reg.test(str)
}
欢迎大家留言评论!