Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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 3个字符长的字母数字正则表达式不工作_Javascript_Regex - Fatal编程技术网

Javascript 3个字符长的字母数字正则表达式不工作

Javascript 3个字符长的字母数字正则表达式不工作,javascript,regex,Javascript,Regex,所以我尝试使用正则表达式来检查字符串,但它似乎不能正常工作 基本上,我希望它匹配一个字母数字字符串,正好是3个字符长。我在下面使用的表达式似乎不适用于此: const msg = message.content; const regex = /[A-Za-z0-9]{3}/g; if (msg.match(regex)) { // Do something } 我做错什么了吗?任何帮助都将不胜感激。提前感谢。您需要分别为字符串锚定的开始和结束添加^和$——否则,例如,对于#123,1

所以我尝试使用正则表达式来检查字符串,但它似乎不能正常工作

基本上,我希望它匹配一个字母数字字符串,正好是3个字符长。我在下面使用的表达式似乎不适用于此:

const msg = message.content;
const regex = /[A-Za-z0-9]{3}/g;

if (msg.match(regex)) {
    // Do something
}

我做错什么了吗?任何帮助都将不胜感激。提前感谢。

您需要分别为字符串锚定的开始和结束添加
^
$
——否则,例如,对于
#123
123
将匹配,并且它将传递正则表达式。您也可以考虑使用<代码> i <代码>标志,而不是重复<代码> -AZ-Z ,并且可以使用<代码> \d<代码>代替<代码> 0~9>代码>

看起来您只是想检查字符串是否通过正则表达式的测试,在这种情况下,
.test
(计算为布尔值)可能比
.match
更合适。此外,无论哪种方式,如果只是检查字符串是否传递正则表达式,则不需要全局标志:

const regex = /^[a-z\d]{3}$/i;
if (regex.test(msg)) {
  // do something
}

这很有效。非常感谢。