Javascript 给定格式的正则表达式-以字母数字开头和结尾
我需要验证以下格式的建筑名称(长度为1-50) 用于字母数字和指定字符检查的我的正则表达式Javascript 给定格式的正则表达式-以字母数字开头和结尾,javascript,regex,Javascript,Regex,我需要验证以下格式的建筑名称(长度为1-50) 用于字母数字和指定字符检查的我的正则表达式 /^[a-zA-Z0-9\s\)\(\]\[\._-&]+$/ 它显示了无效的表达式,但当我排除时&它工作正常 /^[a-zA-Z0-9\s\)\(\]\[\._-]+$/ 实际格式 建筑名称应使用字母、数字、下划线、连字符、句号、方括号[]、括号()和符号& 它不应连续以任何特殊字符开始和结束 有效期: 帝国3州与大厦[A] 7.帝国大厦(A) 帝国(州)大学大厦[
/^[a-zA-Z0-9\s\)\(\]\[\._-&]+$/
它显示了无效的表达式,但当我排除时&它工作正常
/^[a-zA-Z0-9\s\)\(\]\[\._-]+$/
实际格式
我正在努力争取第二种格式。如何首先和最后检查连续允许的特殊字符。非常感谢您的帮助 转义
-
字符:
/^(?!\W.+\W$)[a-zA-Z0-9\s\)\(\]\[\._\-&]+$/
在字符类中,-
字符表示一系列字符(例如1-9
)。由于&
的ASCII代码小于
,因此正则表达式无法正确解析
此外,若要检查开头或结尾处是否没有特殊字符,请在前瞻中使用\W
(字母、数字或下划线以外的字符)检查开头和结尾是否都不是“特殊字符”。如果将下划线计算为特殊字符,请使用[^a-Za-z0-9]
而不是\W
var validBuildingName = /^(?!\W.+\W$)[a-zA-Z0-9\s\)\(\]\[\._\-&]+$/;
validBuildingName.test('(example)'); // false
validBuildingName.test('(example'); // true
validBuildingName.test('example)'); // true
validBuildingName.test('example'); // true
很好用,谢谢。但帝国3州和建筑[A]这对上述内容也无效regex@Sha:对我有效:
/^(?!\W.+\W$)[a-zA-Z0-9\s\(\]\[\.\u\-&]+$/.test('Empire(State)\u Building[a]')
。返回真的吗?
?抱歉。有效。但我用空格Empire3 State&Building[a][]-@Sha:如果你想让空格起作用,只需在字符类中添加一个空格,它就变成了[a-zA-Z0-9\s\)\(\]\[\.\u\-&]
。名称不应该以空格后的连续字符结尾:(你能检查一下这个'building[12])&如何检查regex中的这些测试用例名称[]、&name2、name4()?请提供帮助