本主题是关于简化正则表达式。
我一直在“客户端”验证我使用Javascript创建的表单。此表单要求企业使用其公司名称进行注册。我创建了一个似乎运行良好的正则表达式,但它确实有几个问题。第一个问题是正则表达式只允许名称为5个字或更少的公司被认为是有效的。我知道如何让它允许更多的单词,但这需要更多的代码,这可能被认为是草率的工作。有没有办法可以纠正以下正则表达式以允许公司注册,而不用担心他们的名字中有多少单词? XSS是否会成为我目前拥有正则表达式的问题?感谢所有人和任何帮助。
}
if(!Bname.match(/^[0-9A-Za-z'-]*\s{1}[0-9A-Za-z'-]*$|^[0-9A-Za-z'-]*$|^[0-9A-Za-z'-]*
\s{1}[0-9A-Za-z'-]*\s{1}[0-9A-Za-z'-]*$|^[0-9A-Za-z'-]*\s{1}[0-9A-Za-z'-]*\s{1}[0-9A-
Za-z'-]*\s{1}[0-9A-Za-z'-]*$|^[0-9A-Za-z'-]*\s{1}[0-9A-Za-z'-]*\s{1}[0-9A-Za-z'-]*
\s{1}[0-9A-Za-z'-]*\s{1}[0-9A-Za-z'-]*$/))
{
答案 0 :(得分:1)
你可以像这样扩展你的正则表达式:
Bname.match(/^[0-9A-Za-z'-]+(?:\s[0-9A-Za-z'-]+)*$/)
但是,它不会将名称与重音字符和公司名称中可能存在的其他符号(如Yahoo!)匹配。