【问题标题】:About Company Name Regular expression vvalidation关于公司名称正则表达式验证
【发布时间】:2017-03-08 13:26:49
【问题描述】:

我是正则表达式的新手。 我有一个要求,我必须对公司名称进行验证。 我尝试了各种正则表达式,但不符合我的要求。

这是我的要求。 公司名称可以包含点、逗号、空格和 (&) 运算符。 点可以或不能出现在字符串的末尾 数字也可以存在

接受的标准: 欢迎 欢迎欢迎 3欢迎

不接受的标准。 'dot'('.') 不能出现在字符串中间。(如wel.come) 'and'(&) 字母不能在字符串末尾。 不能接受其他特殊字符。

【问题讨论】:

  • 我尝试了各种正则表达式。然后,您应该能够在您的帖子中包含一些不同的表达方式,以展示您尝试过的对您不起作用的内容。这不是正则表达式编写服务。
  • Falsehoods programmers believe about names 也适用于公司名称。

标签: javascript regex


【解决方案1】:

最简单的解决方案是将其分为两步:

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`)
}

【讨论】: