2011-06-28 131 views
4

以下代碼將查找使用indexOf方法輸入的消息中的人員姓名。Javascript indexOf not working

但是,即使名稱存在,它也會返回不存在的結果。如果我只有達倫作爲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> 
+0

把var放在s1和s2之前。你不需要新的字符串,你可以分配值。記錄/警告函數中s1和s2的值,以確保您有正確的值。提醒prchaser_ok的價值。只是一些基本的調試。 –

回答

4

你正在倒退。它應該是

var purchaser_ok = s2.indexOf(purchaser); 

的「.indexOf()」函數檢查你進入它的參數是否是所使用的接收器(上下文對象的字符串;也就是說,字符串前的「 。「當你打電話時)。

1

你有它向後。

s2.indexOf(purchaser)