我只需要在文本字段中使用数字、点和逗号。如果用户输入其他特殊字符,则需要引发警报。
请在下面找到条件:
- 文本字段应至少包含一个数值。
- 文本字段应始终包含点和逗号不是强制性的。
感谢您的帮助。
这是你的一个开始:http://jsfiddle.net/KLyy8/1/
除非您告诉我们确切的细节,否则我们将不知道如何编写正则表达式。 听起来你想要带有千位分隔符和小数的数字。 但是每个有多少? 上面的小提琴适用于这样的数字......
123,456.79
12,345.6
1,234.56
等。。。
validate=function(){
var str = document.getElementById('test').value;
var patt = new RegExp("^[0-9]{1,3},[0-9]{3}.[0-9]{1,2}$");
var res = patt.test(str);
alert(res);
}
如果字段应仅包含带有小数位的数值(对于 exmaple 3.14
、112358
或 9,81
),则只能使用一个正则表达式:
function validateString(str){
if(str.match(^[0-9.,]+$)){
return true;
}else{
return false;
}
但是,如果您想精确一点,如果我正确理解您的情况,您可能希望将点和逗号限制为一个。
正则表达式可能看起来像这样
^[0-9]+(.|,){0,1}[0-9]+$
这意味着它以数字(^[0-9]+
)开头,然后它可以包含零个或一个逗号或点((.|,){0,1}
),然后再次以数字([0-9]+$
)结尾。