低于 250 美元的正则表达式

问题描述

我是 regex 的新手,我正在寻找一种方法来匹配 250 美元以下的任何美元金额。如何做到这一点?我将要查看的数字中有一个美元符号。谢谢!

解决方法

使用正则表达式:

const pattern = /^\$(1?\d{1,2}|2[0-4]\d)$/

console.log('--- edge cases ---')
console.log("$250",pattern.test("$250"))
console.log("$255",pattern.test("$255"))
console.log("$269",pattern.test("$269"))
console.log("$420",pattern.test("$420"))
console.log("$249",pattern.test("$249"))
console.log("$199",pattern.test("$199"))
console.log(" $55",pattern.test("$55"))
console.log("  $0",pattern.test("$0"))
console.log("  $8",pattern.test("$8"))
console.log("  e",pattern.test("e"))
console.log(" 50",pattern.test("50"))
console.log("space",pattern.test(""))

console.log('--- random tests ---')
Array.from({length: 20},_ => `$${Math.floor(Math.random() * 500)}`)
     .forEach(e => console.log(e.padStart(4),pattern.test(e)))
.as-console-wrapper { max-height: 100% !important; top: 0; }

使用非正则表达式方法(我认为更好),javascript 中的伪代码:

const test = str => str?.split('$')?.[1] < 250

console.log('$350',test('$350'))
console.log('$250',test('$250'))
console.log('$50',test('$50'))
console.log('$249',test('$249'))
console.log('$199',test('$199'))
console.log('420',test('420'))
console.log('space',test(' '))
console.log('empty',test(''))
console.log('undefined',test())
.as-console-wrapper { max-height: 100% !important; top: 0; }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...