2013-05-30 81 views
0

我有一個動態的字符串,這樣它可能看起來像:「」如何驗證此字符串不包含Javascript中的任何特殊字符?

"69.43.202.97"     OR    "ngs.pradhi.com" 

我要驗證這些字符串只包含數字,英文字母和。我想在前端使用java腳本來驗證它。我想用這樣的正則表達式:

function validatePath() { 
    var path = document.getElementById('server_path').value; 
    path.match([a-z][0-9]) //or something like this 
} 

如果路徑無效,顯示警告框儘管我只是想盡快顯示下面的文本字段中顯示錯誤在用戶填寫服務器的路徑。我怎樣才能做到這一點?

我的全javascript函數如下:

function validatePath() { 
    var path = document.getElementById('server_path').value; 
    if (path.search(":") == -1){ 
     alert("Invalid server path"); 
    } 
    else{ 
     var host_name = path.split(":")[0] 
     if host_name.match("^[a-zA-Z0-9.]*$")) {} 

    } 

}

+0

'/ [A-ZA-Z0-9] /'這裏是適當的表示法。 – tadman

+0

別忘了「。」 – dshu610

+0

你想'host_name'匹配嗎?或者你想讓'path'與':'匹配嗎? – Isaac

回答

4

嘗試path.match("^[a-zA-Z0-9.]*$")

編輯: var regex = new RegExp("^[a-zA-Z0-9.]*$"); if(regex.test(host_name)){}

+0

看到我更新的問題。我如何將這個包含在我的上面的函數中。 – pynovice

1

有所不同,更換方法:

if(path.replace(/^[a-z\d.]*$/i,"")=="") 
+0

請注意,下劃線(_)作爲單詞字符計數,因此不是OP所需的。在這種情況下,最好使用'/ [^ a-z \ d \。]/i'。 – RobG

+0

更新的答案,有所不同 – Isaac

+1

+1不止一種方式來給貓皮。 :-) – RobG

2

可以使用/^[a-zA-Z0-9.]*$/.test(path)這將返回true或false

+0

使用* test *代替* match *的+1。 – RobG