我的regex验证代码有问题。我想知道如何验证车辆牌照号码。我写的代码列在这条消息下面。这写在React内联代码中,我写了两个不同的regex表达式,结果都是false。车牌号应为XX-NNNN-XX格式。
X = Letter
N = Number
const [licencePlate, setLicencePlate] = useState('');
var ValidateLicencePlate = /^[A-Z][A-Z]-[0-9][0-9][0-9][0-9]-[A-Z][A-Z]$/g ;
var regex = /^[A-Z]{2}-[0-9]{4}-[A-Z]{2}$/g ;
<input name="licence-plate" type="text" className="feedback-input" maxLength='10' onChange={(e) => setLicencePlate(e.target.value.toUpperCase())} placeholder="XX-NNNN-XX"/>
这个正则表达式可以解决这个问题。
let regex = /^[A-Z]{2}-d{4}-[A-Z]{2}/gi
此正则表达式将在开头匹配两个字母表,在中间匹配四个数字,在结尾匹配两个字符表。
您可以使用regex作为以下
<input pattern="/^[A-Z]{2}-d{4}-[A-Z]{2}/g"/>
您可以将regex
放在input
元素的pattern
属性中。我看不出您在使用您在清单中定义的regexp。
<input pattern={regex}/>
如果您有一个regex约束要验证,那么使用约束验证API可能会更好、更舒适。
<input pattern="your regex here"/>
浏览器已经验证了表单元素中的所有内容,如果您用各种方式(如pattern属性(约束它们,并且除非您告诉它不要验证。但我仍然看到许多代码库试图自己进行验证。这是不必要的,因为平台本身有一种支持和做自己的方式。