^([A-ZA-Z0-9] + [._-])+ [A-ZA-Z0-9] + $
我已使用上面的正则表达式对输入字符串执行以下方案的验证。
我想只允许连字符(' - '),句点('。')和&下划线('_')
名称不应以连字符(' - '),句点('。')和&开头或结尾。下划线('_')
名称不应包含空格
不允许连续两个特殊字符(来自(._-))
我已经通过javascript验证了它。
但是,当我们在末尾添加具有特殊字符的名称时,浏览器会暂停/挂起而不是返回false。
var regex = new RegExp("^([a-zA-Z0-9]+[._-]?)+[a-zA-Z0-9]+$");
if (regex.test($('#txtBox1').val())) {//success}
答案 0 :(得分:1)
不要在重复的群组中选择这些特殊的分隔符:
add-host char * Add the specified host to the list of
hosts known to this job and use it for
the associated process. This will be
used similarly to the -host option.
仍然匹配相同,但它无法回溯将可选字符应用于不显示的位置。
答案 1 :(得分:0)
试试这个
var isValid = !!str.match(/[^\w.-]/i)
&& !str.split(/[._-]/).filter( s => s.length == 0 ).length;
<强>解释强>
str.match(/[^\w.-]/i)
检查是否有任何字符匹配,既不是字母数字,下划线,点也不是连字符
str.split(/[._-]/)
按这三个字符[._-]
拆分输入,然后检查是否有空字符串。如果这些字符位于开头或结束或连续放置,那么将会有一个空字符串结果数组。