0

我目前正在匹配用户输入,如下所示:

user_input = "upload a file"

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

这工作正常,但问题是,它匹配我不想要的“文件”。我希望它仅在开头正确的情况下匹配。

这应该匹配:

"upload"
"u"
"upload a"

这不应该匹配,因为字符串从一开始就不匹配:

"a"
"file"

有没有关于如何做到这一点的建议indexOf

4

3 回答 3

3

indexOf返回匹配的索引,所以如果你想在开始时测试它是否匹配,只需检查它是否返回 0

user_input = "upload a file"
if ( "upload a file".indexOf(user_input.toLowerCase()) == 0 ) {}
于 2012-09-18T17:39:13.940 回答
1
<script>
user_input = "upload a file"
if ( "upload a file".**substr**(0, user_input.length) == user_input.toLowerCase()) {}
</script>

使用输入对您有利...

http://www.w3schools.com/jsref/jsref_substr.asp

获取字符串的前 X 个字符,并确保整个字符串匹配或您想要的任意数量的字符。

于 2012-09-18T17:42:47.590 回答
0

你所描述的意味着你想与零进行比较:

if ( "upload a file".indexOf(user_input.toLowerCase()) == 0) { }
于 2012-09-18T17:38:25.297 回答