gpt4 book ai didi

javascript - AngularJS Controller 中的复杂正则表达式

转载 作者:行者123 更新时间:2023-11-30 15:31:04 25 4
gpt4 key购买 nike

我正在尝试在我的 AngularJS Controller 中添加一个正则表达式,以验证文本输入框中的以下四个条件:A) name (space) name , B) name,(comma) name , C) 123456789(最多 9 位) D) 123-45-6789

我创建了以下正则表达式:1)验证:/^[a-zA-Z0-9 ,\-]+[(?<=\d\s]([a-zA-Z0-9]+\s)*[a-zA-Z0-9]+$ /

除了格式化最后四位数字并将数字限制为最多九个字符外,这与我想要的很接近。

我还尝试根据我的研究组合以下正则表达式但无济于事:2)验证:/^([0-9]{8,9})$/ + /^([A-z'\/-])+[\s]+([A-z'\/-])+$/ + /^([A-z'\/-])+[\s]*[\,]{1}[\s]*([A-z-\/'])+$/ + /^\d{3}-\d{2}-\d{4}$/

3)验证:/^([0-9]{8,9})$/ | /^([A-z'\/-])+[\s]+([A-z'\/-])+$/ | /^([A-z'\/-])+[\s]*[\,]{1}[\s]*([A-z-\/'])+$/ | /^\d{3}-\d{2}-\d{4}$/

4)验证:new RegExp('(' + /^([0-9]{8,9})$/ + ") | (" + /^([A-z'\/-])+[\s]+([A-z'\/-])+$/ + ") | (" + /^([A-z'\/-])+[\s]*[\,]{1}[\s]*([A-z-\/'])+$/ + ") | (" + /^\d{3}-\d{2}-\d{4}$/ + ')')

我有三个问题:

  • 是否可以创建一个验证这四个条件的正则表达式?

  • 我把这些结合起来不正确吗?

  • 或者我应该放弃这个正则表达式任务,只创建一个单独的函数来执行我的验证吗?

最佳答案

这应该对你有用:^([a-zA-Z]+(?:-\/)?[,\/]?\s+[a-zA-Z]+(?:-\/)?|\d{1,9}|\d{3}-\d{2}-\d{4})$

const validate = input => /^^([a-zA-Z]+(?:-\/)?[,\/]?\s+[a-zA-Z]+(?:-\/)?|\d{1,9}|\d{3}-\d{2}-\d{4})$/.test(input)

const testData = ["123", "name space", "John Doe", "John/ Doe", "Doe, John", "John", "name, ", "John Doe", "John-/ Doe", "John-/, Doe-/", "sdf", "123-45-6789", "1234567890" ,"name , surname"]
for (const input of testData){
console.log(`${input} ${validate(input)}`)
}

关于javascript - AngularJS Controller 中的复杂正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42233640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com