Javascript 检查单词和单词长度的正则表达式

Javascript 检查单词和单词长度的正则表达式,javascript,regex,Javascript,Regex,在JavaScript中,我使用正则表达式/^([a-z]){3}^(foo)/I尝试匹配特定单词和单词的长度。正则表达式也应该不区分大小写。因此,我在末尾添加了一个I修饰符 我认为它应该做的是 ^ : Start at beginning of string ([a-z]){3} : Match [a-z] exactly three times ^ : Go back to start of string (foo) : Match the wo

在JavaScript中,我使用正则表达式
/^([a-z]){3}^(foo)/I
尝试匹配特定单词和单词的长度。正则表达式也应该不区分大小写。因此,我在末尾添加了一个
I
修饰符

我认为它应该做的是

^          : Start at beginning of string
([a-z]){3} : Match [a-z] exactly three times
^          : Go back to start of string
(foo)      : Match the word foo exactly
但是,当我使用以下字符串测试时,
fOo
fOo
fOo
fOo
,它没有返回任何匹配项

如果有人能解释我做错了什么并帮我改正,我将不胜感激

为Sukima编辑

应该工作的字符串示例:

fOo
FoO
foo
FOO
不应该工作的示例字符串

f o o
adfsFoO
fooFoe
FfOoF
:fdFoo:

正则表达式的目的是检查字符串是否与单词
foo
完全匹配,并且长度是否为
3

因此
foo
实际上是先前正则表达式的一个子集,下面的方法可以实现:

/^\w{3})/i
或者,如果不允许使用数字,请选择以下选项之一:

/^[a-z]{3}/i
/^[A-a]{3}/
这个正则表达式匹配字符串开头的每一个三个字符的单词(如果指定/m修饰符,则为行),而不管它是大写还是小写

编辑(回复评论): 如果您需要精确匹配单词foo,而不考虑其大小写,请选择:

/^foo$/i

示例匹配:
fOo
fOo
fOo
fOo
fOo
。。。更多信息请访问

该regexp中有两个问题。首先,
^
表示行首,除非它是regexp模式中的第一个字符,否则行首没有意义

第二个模式
[a-z]{3}
无论如何都会匹配
foo
,所以第二个模式就是噪声

想想你想要的只是
^[a-z]{3}
,它将匹配
foo
中的
foo
foobar

另一方面,如果您想在生产线的起点(或终点)匹配多个图案,则必须使用管道将图案分开


^foo | ^bar
将匹配
foo
bar
,但不匹配
bazbar
bazfoo

您的意思是
^([a-z]){3}|^(foo)
?演示这不是
^
的工作方式。向前看可能更好。谢谢。这就解决了为什么不直接执行
/^foo$/
?我使用了两种模式,因为它必须匹配某个单词,而字符串只能包含该单词,因此使用了长度模式。感谢您的回答,尽管显示您想要搜索的示例文本和您想要的实际结果。然后其他人可以更好地推荐一个可以工作的regexp模式并解释原因。我更新了这个问题。我希望它能更清楚地说明我想要实现的目标。我使用了两种模式,因为它必须匹配某个单词,字符串只能包含该单词,因此使用了长度模式。谢谢你的回答,谢谢你的帮助:)用
/^[a-z]{3}/i
代替
/^[a-zA-z]{3}/i
;)@它是一种无修饰剂的溶液;我修正了输入错误并添加了两个选项,谢谢;)做
/^[A-z]{3}/
(省略不区分大小写的限定符)有什么错?