2012-07-23 89 views
0

嘗試設置一個簡單的.jsp來測試JavaScript正則表達式,並避免每次進行更改時都必須清理/構建/重新發布我的測試服務器。現有的代碼來自於我正在努力添加對西班牙字符的識別的項目,但是這個代碼似乎根本沒有發現任何不匹配。JavaScript'外來字符'正則表達式無法捕捉模式

<html> 
<head> 
    <script language="JavaScript"> 
     function isValidTarget(target) { 
      if (regexTarget.target.search(/^[a-zA-Z\#\@\!\&\.\*\-:;<>"',\?0-9 ]+$/) == -1) { 
       alert("Your input contains one or more invalid characters."); 
      } 
     } 
    </script> 
</head> 
<body> 
    <form name="regexTarget" method="post" onSubmit="return isValidTarget(this)"> 
     Target: <input type="text" name="target"/> 
     <input type="submit" value="Submit" /> 
    </form> 
</body> 
</html> 

回答

0

您正在嘗試搜索DOM節點而不是其值。試試這個:

regexTarget.target.value.search(...) 
+0

啊!好吧 - 我做了一些代碼更改,但不知道正確的語法,卻忽略了添加「值」。這是從現有代碼中學習新語言的陷阱。謝謝薄荷! – rainydaymatt 2012-07-23 20:36:28

0

你命名參數target,但你從來沒有使用它。刪除參數或使用它(例如:if(target.target.search...

+0

啊!我懂了。我對你的帖子的第一反應是,「你是不是指regexTarget?」但是,是的,它在這個範圍中有一個新的名字 - 正如在regexTarget會工作,如果我通過它。 不管你信不信,他們確實讓我脫離了程序設計;;)謝謝。 – rainydaymatt 2012-07-23 20:39:16

0
if (target.target.value.search(/^[a-zA-Z\#\@\!\&\.\*\-:;<>"',\?0-9 ]+$/) == -1) 
+0

同上我對Kolink的迴應。 ;) – rainydaymatt 2012-07-23 20:39:43