JavaScript字符串仅在开始时匹配而不是使用indexOf?

时间:2012-09-18 17:35:33

标签: javascript jquery regex indexof

我目前正在按如下方式匹配用户输入:

user_input = "upload a file"

if ( "upload a file".indexOf(user_input.toLowerCase()) > -1 ) {}

这项工作很好,但问题是,它匹配"文件"这是我不想要的。如果开头是正确的,我希望它只匹配。

这应该匹配:

"upload"
"u"
"upload a"

这不应该匹配,因为字符串从开头不匹配:

"a"
"file"

有关于如何使用indexOf实现此目的的任何建议吗?

2 个答案:

答案 0 :(得分:3)

indexOf返回匹配的索引,因此如果您想测试它是否在开头匹配,只需检查它是否返回0

user_input = "upload a file"
if ( "upload a file".indexOf(user_input.toLowerCase()) == 0 ) {}

答案 1 :(得分:0)

您所描述的意味着您希望与零进行比较:

if ( "upload a file".indexOf(user_input.toLowerCase()) == 0) { }