Я пытаюсь REGEX поля ввода в JavaScript Что я делаю, eveytime клавиша нажата, следующий код вызываются:.
function testPattern(pattern, evt) {
// in this case, pattern = "^[0-9]*$"
var inputField = evt.getCurrentTarget();
var keyCode = evt.getKeyCode();
var oldValue = inputField.getSubmittedValue();
// return if keycode is navigation, delete or backspace
if((keyCode >= 35 && keyCode <= 40) || keyCode == 8 || keyCode == 46){
return;
}
var regExp = new RegExp(pattern);
var hasMatch = false;
hasMatch = regExp.test(String.fromCharCode(keyCode));
if (!hasMatch) {
inputField.setValue(oldValue);
evt.cancel();
}
}
ожидаемый результат:. символ не записывается во входном текстовом поле, если вход отличается от цифры это работает отлично, за исключением знаков, за исключением # $% & и (
Я пробовал следовать ING регулярное выражение (очень похожий)
"^[\\d]$"
"^[\\d]*$"
"^[\\d]+$"
"^[0-9]*$"
Кто-то знает, почему это может происходить?
Это должно было игнорировать навигацию по стрелкам и удаление символов. Я думал, что это будет Char Codes http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes. Большое вам спасибо за вашу помощь! :) – MariBarcelos