Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查字符串是否介于两个长度之间且只有字母和数字的正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 检查字符串是否介于两个长度之间且只有字母和数字的正则表达式

Javascript 检查字符串是否介于两个长度之间且只有字母和数字的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我试图通过客户端valdiation验证表单中的用户名字段,但遇到了一些问题 我正在尝试使用与regexs匹配的方法,这似乎对我的密码强度/匹配有效。但是,当我尝试将正则表达式更改为适合用户名的正则表达式时,它不起作用 这是一个有效的正则表达式,它检查长度是否至少为6个字符 var okRegex = new RegExp("(?=.{6,}).*", "g"); 这是另一个不起作用的正则表达式: var okRegex = new RegExp("/^[a-z0-9_-]{3,16}$/")

我试图通过客户端valdiation验证表单中的用户名字段,但遇到了一些问题

我正在尝试使用与regexs匹配的方法,这似乎对我的密码强度/匹配有效。但是,当我尝试将正则表达式更改为适合用户名的正则表达式时,它不起作用

这是一个有效的正则表达式,它检查长度是否至少为6个字符

var okRegex = new RegExp("(?=.{6,}).*", "g");
这是另一个不起作用的正则表达式:

var okRegex = new RegExp("/^[a-z0-9_-]{3,16}$/");

如何编写执行用户名验证的正则表达式?它具有一定的长度,只有字母和数字

您将regex文本与RegExp构造函数混合。使用一个或另一个,但不能同时使用两个:

okRegex = new RegExp('^[a-z0-9_-]{3,16}$');


您将regex文本与RegExp构造函数混合。使用一个或另一个,但不能同时使用两个:

okRegex = new RegExp('^[a-z0-9_-]{3,16}$');


正如@zzzzBow所回答的,您正在混合使用正则表达式的两种方法。选择一个或另一个。现在,我们来分析一下:

^匹配字符串的开头,这意味着字符串必须以后面的内容开头

[a-z0-9_-]匹配字符a-z、a-z、数字0-9_uu2;下划线和-破折号/连字符

{3,16}表示上述字符类中必须有3-16次出现

$匹配字符串的结尾,因此在上述16个字符之后不能是任何字符


希望这能有所帮助。

正如@zzzzBow所回答的,您正在混合使用正则表达式的两种方法。选择一个或另一个。现在,我们来分析一下:

^匹配字符串的开头,这意味着字符串必须以后面的内容开头

[a-z0-9_-]匹配字符a-z、a-z、数字0-9_uu2;下划线和-破折号/连字符

{3,16}表示上述字符类中必须有3-16次出现

$匹配字符串的结尾,因此在上述16个字符之后不能是任何字符


希望这能有所帮助。

您试图强制执行的用户名规则是什么?regexps的好帮助工具:if/^[a-z0-9_-]{3,16}$/.testuserNameVar{//username是好的!}您试图强制执行的用户名规则是什么?regexps的好帮助工具:if/^[a-z0-9_-]{3,16}$/.testuserNameVar{//username是好的!}值得一提的是,如果您正在创建动态RegExp,那么使用新的RegExp并传入参数,对于硬编码使用/RegExp/会更快。我现在在处理电子邮件时遇到问题。。我只使用了一个文字。。我认为var-okRegex=newregexp'^[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$'@user3112518,正则表达式不适用于验证电子邮件地址。值得一提的是,如果您正在创建动态RegExp,请使用新的RegExp并传入参数,因为硬编码的用法/RegExp/更快。我现在在处理电子邮件时遇到问题。。我只使用了一个文字。。我认为var-okRegex=newregexp'^[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$'@user3112518,正则表达式不适合验证电子邮件地址。我现在在处理电子邮件时遇到问题。。我只使用了一个文字。。我认为var-okRegex=newregexp'^[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$';我现在的电子邮件有问题。。我只使用了一个文字。。我认为var-okRegex=newregexp'^[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$';