2011-08-27 20 views
0

當我使用"\d+"作爲模式值運行此腳本時,正則表達式無法正常工作。 當我逃避反斜槓時,它的工作原理。 反斜槓是我必須逃脫的唯一角色嗎?javascript:html5-pattern正則表達式問題

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
<p>Enter a number:</p> 
<form id="form"> 
    <script type="text/javascript"> 
     var form = document.getElementById('form'); 
     var input = document.createElement('input'); 
     input.name = 'amount'; 
     input.type = 'number'; 
     input.pattern = "\\d+"; 
     form.appendChild(input); 
    </script> 
    <br /><br /> 
    <input type="submit" value="OK"/> 
</form> 
</body> 
</html> 

回答

2

你要逃避作爲一個正則表達式表達式的字符串反斜槓字符就像你在任何JavaScript字符串。

要在字符串中包含文字反斜槓,您必須轉義 反斜槓字符。例如,要指定文件路徑C:\ TEMP到 字符串,請使用下列內容:

var home = "c:\\temp";

https://developer.mozilla.org/en/JavaScript/Guide/Values,_Variables,_and_Literals#Escaping_Characters

+0

我不認爲他想添加一個反斜槓,但一個數字。反彈應該逃脫,因爲它在字符串 –

+0

是不是我放的?我真的不明白我的答案和你的答案之間的區別。 – ipr101

+0

順便說一句 - 讓我知道我認爲哪一個答案你不清楚,我會很樂意改變它。 – ipr101

2

反斜槓必須轉義成字符串語法的一部分。

+0

JavaScript識別單引號分隔字符串中的轉義序列。使用單引號在這裏沒有幫助。 – Quentin

+0

似乎是這樣,我很困惑。固定。 –