Is that possible to pass variable into regular expression pattern string in jquery ( or javascript)? For example, I want to validate a zip code input field every time while user type in a character by passing variable i to the regular expression pattern. How to do it right?
$('#zip').keyup( function(){
var i=$('#zip').val().length
for ( i; i<=5; i++){
var pattern=/^[0-9]{i}$/;
if ( !pattern.test( $('#zip').val() ) )
{$('#zip_error').css('display','inline');}
else
{$('#zip_error').css('display','none');}
}
})
Yes, you can, using the RegExp
constructor:
var pattern = new RegExp("^[0-9]{"+i+"}$");
But... looking at your code seems that you want to ensure that the textbox contains only numbers, for that you can use a simple regex like this:
var pattern = /^[0-9]+$/;
The above pattern will only match a string composed by numbers, it will look for:
^
[0-9]
+
$
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With