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

Posted 安之ccy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则使用:判断是否满足指定格式相关的知识,希望对你有一定的参考价值。

案例(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

以上是关于正则使用:判断是否满足指定格式的主要内容,如果未能解决你的问题,请参考以下文章

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

shell-------正则表达式

干啥都要沾一点的正则表达式

正则表达式

java 日期格式判断问题

java中正则表达式如何使用?比如判断一个字符串是不是满足某种格式,给个详细点的例子