正则使用:判断是否满足指定格式

案例(1):
给定字符串 str,检查其是否符合如下格式 (来源牛客网)
 
1、XXX-XXX-XXXX
2、其中 X 为 Number 类型

// XXX-XXX-XXXX 
function checkFormat(str){
    
    
    let reg = /^\d{3}-\d{3}-\d{4}$/;
    return reg.test(str)
}
let result = checkFormat('1800-555-1212')
console.log(result)

注意要以XXX开头,

  • 如果用^没有指定开头,/\d{3}-\d{3}-\d{4}$/不足以筛选'1800-555-1212'
  • 需要再加一个约束,把全部字符串与match出来的第一个结果做比较;
  • reg.test(str) && str.match(reg)[0] === str

还是用'^'方便些



案例(2):
 
判断是否符合 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’      ‘$132.03’     ‘$0.93’
输出:true      true      true

function isUSD(str) {
    
    
    let reg =  /^\$(([1-9][0-9]{0,2}(,\d{3})*)|0)(\.\d{2})?$/
    // return str.match(reg);
    return reg.test(str)
}
let res = isUSD('$132.03')
console.log(res);

注意:

  • 如果整数部分是多位数,第一位不能为0
  • 整数部分长度如果不是3的倍数,只需保证逗号间隔的子串数字长度为3
  • 注意小数点在正则中代表任意字符(换行符 \n 除外),需要用转义字符转义

猜你喜欢

转载自blog.csdn.net/qq_43523725/article/details/119064008