Javascript indexOf不起作用

5
以下代码使用indexOf方法在用户输入的消息中查找人名。
然而,即使名字存在,它也返回未找到结果。如果我只使用“Darren”作为cardMessage,它可以工作。
有人能指出问题在哪里吗?
<%
firstName = "Darren"
cardMessage = "Is Darren in the message?"
cardMessage = CleanX(cardMessage)
firstName = UCase(firstName)
cardMessage = UCase(cardMessage)

Function CleanX(strString)
Set regEx = New RegExp
regEx.Pattern = "[^a-z0-9 ]+"
regEx.IgnoreCase = True
regEx.Global = True
CleanX = regEx.Replace(strString, "")
End Function
%>
<p><%=cardMessage%></p>
<p><%=firstName%></p>
<a href="javascript:check_message()">Click Here</a>
<script type="text/javascript">

s1 = new String("<%=firstName%>")
s2 = new String("<%=cardMessage%>")

function check_message()
{
var purchaser=s1;
var purchaser_ok=purchaser.indexOf(s2);
if (purchaser_ok==-1)
{ 
confirm('Name is NOT in message');
}
else
alert('Name is in message');
}
</script>

在 s1 和 s2 前面加上 var。你不需要新的 String,只需分配值即可。在函数中记录/警告 s1 和 s2 的值,以确保您拥有正确的值。也要警告 prchaser_ok 的值。只是一些基本的调试。 - Maxim Krizhanovsky
2个回答

5
你做反了。应该是这样的:
var purchaser_ok = s2.indexOf(purchaser);

".indexOf()"函数会检查传入的参数是否在作为接收器(上下文对象;也就是调用它时"."之前的字符串)使用的字符串中。

1

你搞反了。

s2.indexOf(purchaser)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接