4

Possible Duplicate:
How do you pass a variable to a Regular Expression JavaScript?

I need help to resolve the issue because the code fails due to 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>

Any help will appreciated.

Community
  • 1
  • 1
Bidesi
  • 51
  • 4

3 Answers3

5

Use the RegExp-constructor, like:

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

Or:

var result = new RegExp('^[-+]?\d{0,' + numLength[0] + '}(\.\d{0,' + numLength[1] + '})?$').test(number);
Yoshi
  • 53,111
  • 13
  • 85
  • 102
0

try this:

<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>
talkol
  • 12,296
  • 11
  • 53
  • 62
-1

numLength[0] is 5. We can not add evaluation of variable in regular expression. Below code returns true.

var result = /^[-+]?\d{0,x}(\.\d{0,5})?$/.test(number);
Umesh Patil
  • 10,059
  • 16
  • 48
  • 78