【发布时间】:2016-03-23 01:18:18
【问题描述】:
我无法让正则表达式正确地进行验证。需要多个小数、正数、负数和逗号分隔才能被允许,其他都没有。
应该允许:
41.975481,-87.728222, 41.974141,-87.721569, 41.973247,-87.7135
不应允许:
41.975481,-87.728222, 41.97TEST4141,-87.721569, 41.973247,-87.7135, 测试
这是我正在使用的,但它允许字符。
(\-?\d+(\.\d+))(,\s*(\-?\d+(\.\d+)))*
我错过了什么吗?
$('textarea[name="latlong"]').bind('focusout',function(){
$(".polygon .geoerror").text("");
var polygon = $(this).val();
//remove trailing comma and extra space if its there
polygon = polygon.replace(/,\s*$/, "");
var checkpoly = /(\-?\d+(\.\d+))(,\s*(\-?\d+(\.\d+)))*/;
var evenodd = polygon.split(',').length;
if (checkpoly.test(polygon) && evenodd % 2 == 0) {
$(".polygon .geoerror").text("Polygon string is valid." + polygon);
$(".polygon .geoerror").css("color", "green");
} else if (checkpoly.test(polygon) && evenodd % 2) {
$(".polygon .geoerror").text("Mismatch of lat and long values." + polygon);
$(".polygon .geoerror").css("color", "red");
} else {
$(".polygon .geoerror").text("Not valid." + polygon);
$(".polygon .geoerror").css("color", "red");
}
return false;
});
基于代码,如果用户输入 - 41.975481,-87.728222, 41.974141,-87.721569, 41.973247,-87.7135, test - 那么它测试为有效。它需要出错。
【问题讨论】:
标签: javascript jquery regex forms validation