Я пытаюсь разрешить только цифры и специальные символы типа '.' и ',' разрешено в моей текстовой строке. для этого я пробовал следующий кодРегулярное выражение для действительного числа с необязательными запятыми и точкой
var pattern = /[A-Za-z]/g;
var nospecial=/[\(#\$\%_+~=*!|\":<>[\]{}`\\)';@&?$]/g;
if (!ev.ctrlKey && charCode!=9 && charCode!=8 && charCode!=36 && charCode!=37 && charCode!=38 && (charCode!=39 || (charCode==39 && text=="'")) && charCode!=40) {
console.log(text);
if (!pattern.test(text) && !nospecial.test(text)) {
console.log('if');
return true;
} else {
console.log('else');
return false;
}
}
, но не получил желаемый результат. скажи мне, где я ошибаюсь.
Видя ответ @ smerny, кажется, что вы хотите что-то немного отличающееся от того, что вы впервые задали. В противном случае вы просто сможете сделать '/^[0-9.,] * $ /'. Можете ли вы обновить вопрос, чтобы другие могли помочь (не пытаясь сделать выбранный ответ более эффективным, гадая)? – Sam
Итак, если мы говорим о ascii, просто создайте класс символов, который вы хотите. Btw, контрольные символы варьируются от 'x00-x1f' или' x7f', поэтому тесты для кодов 9 и 8 никогда не будут достигнуты, поскольку они являются частью управляющих кодов. – sln
good one ... @sln – Garry