我是正则表达的新手。 我有一个要求,我必须对公司名称进行验证。 我尝试了各种正则表达式,但不符合我的要求。
这是我的要求。 公司名称可以包含点,逗号,空格和(&)运算符。 点可以是或不能出现在字符串的末尾 数字也可以存在
接受标准: 欢迎 欢迎&欢迎 3Welcome
不接受的批评。 ' dot'('。')不能出现在字符串的中间。(如wel.come) '和'(&)字母不能在字符串的末尾。 没有其他特殊字符可以接受。
答案 0 :(得分:0)
最简单的解决方案是将其分为两个步骤:
const validate = name => {
if (/[^\w,. &]/.test(name)) return false; // look for any not allowed char
if (/\..|^\./.test(name)) return false; // test for dot
return true;
}
const data = ['test', 'company name', '.not valid', 'not .valid', 'Welcome Welcome & Welcome 3Welcome']
for (const name of data){
console.log(`[${name}] is ${validate(name) ? '' : 'not '}valid`)
}