jquery 经度和纬度的正则表达式屏蔽输入
regex masked input for latitude and longitude with jquery
我正在尝试使用 jQuery 屏蔽专门针对纬度和经度值的输入。我开始搜索正则表达式值来验证它们中的每一个,希望我找到了这些:
for latitude
/^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/
for longitude
/^-?((1?[0-7]?|[0-9]?)[0-9]|180)\.[0-9]{1,6}$/
我还找到了一个使用正则表达式屏蔽输入的函数,如下所示:
$(this).keypress(function(event){
if(!event.charCode){
return true;
}
var part1 = this.value.substring(0,this.selectionStart);
var part2 = this.value.substring(this.selectionEnd,this.value.length);
if(!mask.test(part1 + String.fromCharCode(event.charCode) + part2)){
return false;
}
});
现在,当我检查像 /^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/.test("44.4")
这样的值时,验证 returns true
但我想在这里完成的是在用户输入时验证这些输入。
例如我开始输入 4:
/^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/.test("4") returns false;
因此输入没有价值。
换句话说,当用户键入您想要的输入时,否则将无效通过?为什么不在输入失去焦点后才检查?或者您可以使用上次键入的某种计时器。
纬度:/^(?:-|-?(?:\d|[1-8]\d?|90?)(?:\.[0-9]{0,6})?)$/
^
(?:
-
|
-?
(?:
\d
| [1-8] \d?
| 90?
)
(?: \. [0-9]{0,6} )?
)
$
经度:/^(?:-|-?(?:\d|[1-9]\d?|1(?:[0-7]\d?)?|1(?:80?)?)(?:\.[0-9]{0,6})?)$/
^
(?:
-
|
-?
(?:
\d
| [1-9] \d?
| 1
(?: [0-7] \d? )?
| 1
(?: 80? )?
)
(?: \. [0-9]{0,6} )?
)
$
24 小时制:^(?:\d|0\d?|1\d?|2[0-3]?)(?::(?:\d|0\d?|[1-5]\d?)?)?$
^
(?:
\d # 0 - 9
| 0 \d? # 00 - 09
| 1 \d? # 10 - 19
| 2 [0-3]? # 20 - 23
)
(?:
: # :
(?:
\d # 0 - 9
| 0 \d? # 00 - 09
| [1-5] \d? # 10 - 59
)?
)?
$
我正在尝试使用 jQuery 屏蔽专门针对纬度和经度值的输入。我开始搜索正则表达式值来验证它们中的每一个,希望我找到了这些:
for latitude
/^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/
for longitude
/^-?((1?[0-7]?|[0-9]?)[0-9]|180)\.[0-9]{1,6}$/
我还找到了一个使用正则表达式屏蔽输入的函数,如下所示:
$(this).keypress(function(event){
if(!event.charCode){
return true;
}
var part1 = this.value.substring(0,this.selectionStart);
var part2 = this.value.substring(this.selectionEnd,this.value.length);
if(!mask.test(part1 + String.fromCharCode(event.charCode) + part2)){
return false;
}
});
现在,当我检查像 /^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/.test("44.4")
这样的值时,验证 returns true
但我想在这里完成的是在用户输入时验证这些输入。
例如我开始输入 4:
/^-?([0-8]?[0-9]|90)\.[0-9]{1,6}$/.test("4") returns false;
因此输入没有价值。
换句话说,当用户键入您想要的输入时,否则将无效通过?为什么不在输入失去焦点后才检查?或者您可以使用上次键入的某种计时器。
纬度:/^(?:-|-?(?:\d|[1-8]\d?|90?)(?:\.[0-9]{0,6})?)$/
^
(?:
-
|
-?
(?:
\d
| [1-8] \d?
| 90?
)
(?: \. [0-9]{0,6} )?
)
$
经度:/^(?:-|-?(?:\d|[1-9]\d?|1(?:[0-7]\d?)?|1(?:80?)?)(?:\.[0-9]{0,6})?)$/
^
(?:
-
|
-?
(?:
\d
| [1-9] \d?
| 1
(?: [0-7] \d? )?
| 1
(?: 80? )?
)
(?: \. [0-9]{0,6} )?
)
$
24 小时制:^(?:\d|0\d?|1\d?|2[0-3]?)(?::(?:\d|0\d?|[1-5]\d?)?)?$
^
(?:
\d # 0 - 9
| 0 \d? # 00 - 09
| 1 \d? # 10 - 19
| 2 [0-3]? # 20 - 23
)
(?:
: # :
(?:
\d # 0 - 9
| 0 \d? # 00 - 09
| [1-5] \d? # 10 - 59
)?
)?
$