2011-12-20 57 views
3

可能重複:
How do you pass a variable to a Regular Expression JavaScript?如何將一個變量傳遞到一個正則表達式在JavaScript

我需要幫助解決的問題,因爲代碼失敗,因爲 numLength [0] :

<html> 
<body> 

<script type="text/javascript"> 
function xyz(){ 
var predefLength = "5,5"; 
var number = "20"; 
var numLength = predefLength.split(","); 
var result = /^[-+]?\d{0,numLength[0]}(\.\d{0,numLength[1]})?$/.test(number); 
document.write(result); 
} 
</script> 

</body> 
</html> 

任何幫助將不勝感激。

回答

4

使用RegExp -constructor,如:

var pattern = new RegExp('pattern as a string', 'flags as a string'); 

或者:

var result = new RegExp('^[-+]?\d{0,' + numLength[0] + '}(\.\d{0,' + numLength[1] + '})?$').test(number); 
+0

沒錯。正則表達式文字不能與字符串文字連接。 – 2011-12-20 11:20:16

-1

numLength [0] 5.我們不能在正則表達式中添加變量的評價。下面的代碼返回true。

var result = /^[-+]?\d{0,x}(\.\d{0,5})?$/.test(number); 
0

試試這個:

<script type="text/javascript"> 
function xyz(){ 
var predefLength = "5,5"; 
var number = "20"; 
var numLength = predefLength.split(","); 

var pattern = new RegExp('^[-+]?\\d{0,'+numLength[0]+'}(\\.\\d{0,'+numLength[1]+'})?$'); 
var result = pattern.test(number); 
document.write(result); 
} 
</script> 
相關問題