Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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_Regex - Fatal编程技术网

Javascript 仅在字符串的开始/结束处匹配正则表达式

Javascript 仅在字符串的开始/结束处匹配正则表达式,javascript,regex,Javascript,Regex,正如标题所示,我试图对字符串使用.match()函数,以便只匹配发生在该字符串开头或结尾的实例(但不匹配中间的位置) 例如,在“测试”一词上: 只有x1、x2和x3应该与正则表达式匹配。目前,我有: .toUpperCase().match(/(TEST)/) 它将匹配“test”的每个实例。我已经尝试使用了^和$修饰符,但它们只匹配x3。然而,这一点:` .toUpperCase().match(/(TEST)$/) 将仅匹配x2和x3,并使用.toUpperCase().match(/^

正如标题所示,我试图对字符串使用.match()函数,以便只匹配发生在该字符串开头或结尾的实例(但不匹配中间的位置)

例如,在“测试”一词上:

只有x1、x2和x3应该与正则表达式匹配。目前,我有:

.toUpperCase().match(/(TEST)/)
它将匹配“test”的每个实例。我已经尝试使用了^和$修饰符,但它们只匹配x3。然而,这一点:`

.toUpperCase().match(/(TEST)$/)

将仅匹配x2和x3,并使用
.toUpperCase().match(/^(TEST)/)
仅匹配x1和x3。

只需使用
匹配其中一个

.toUpperCase().match(/^TEST | TEST$/)

还请注意,您不需要在
TEST
周围加括号

/^TEST.*|.*TEST$/
如果这个正则表达式以“TEST”开头或结尾,它将匹配一行。添加
m
以匹配多行


注意:此正则表达式将返回整行内容

这可能取决于您的用例,但您可以跳过
.toUpperCase()
,只需使匹配不区分大小写:
.match(/^TEST | TEST$/i)
谢谢您的帮助!这是一个关于区分大小写的好建议@benschumacher,也谢谢你
/^TEST.*|.*TEST$/