Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.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,我正试图中断向测试字段提交字母数字字符的表单。在谷歌搜索之后,我发现了许多人人都认为非常有效的regex实现 if( !jQuery('input[name=myUsername]').val().test(/^[a-zA-Z0-9]+/) ) { alert('ERROR: Your username contains invalid characters. Please use numbers and letters only. No spaces, no punctuati

我正试图中断向测试字段提交字母数字字符的表单。在谷歌搜索之后,我发现了许多人人都认为非常有效的regex实现

if( !jQuery('input[name=myUsername]').val().test(/^[a-zA-Z0-9]+/) ) {
        alert('ERROR: Your username contains invalid characters. Please use numbers and letters only. No spaces, no punctuation.');
        jQuery('input[name=myUsername]').focus();
        return false;
}
但是,如果该值以非字母数字字符开头,则仅返回false并创建警报。如果我输入“bo$$”,它允许它作为字母数字,即使$不是字母数字字符。。。如果我输入“$$ob”,它将失败并发出警报


如何修复此问题,使其在整个值中的任何无效字符中都失败?我尝试了.match()而不是.test(),但同样的问题,我假设正则表达式中的某个地方出错了

使用锚定
$
避免在结尾匹配不需要的字符:

/^[a-zA-Z0-9]+$/
放置
$
结束锚来限制它。如果没有
$
,您的正则表达式将进行部分匹配

$ assert position at end of a line

bo$$
将与
bo
进行部分匹配,因为
$
不存在。

尝试
/^[a-zA-Z0-9]+$/
通常不会影响我的匿名性,但在这种情况下,我会破例,尽管我会在几个小时后删除评论。否决票,因为原稿不清楚/给人错误的印象。你的编辑然后修正了它,所以我已经扭转了否决票。够公平了,我有点匆忙。你说得对-评论通常是有帮助的/只是公平的。
$ assert position at end of a line