Не допускайте специальных символов, если не указано - PullRequest
0 голосов
/ 18 марта 2020

Моя проблема заключается в том, что я хочу ограничить ввод всех специальных символов в мое текстовое поле, кроме двух символов:

"-" и "."

Проблема заключается в том, что дефис используется так, как я разделяю символы в своей спецификации. См. JavaScript ниже

            domain = document.querySelector('#Domain_Input').value;
        let lettersDomain = /^[.a-zA-Z0-9-]+$/;
        if (domain == lettersDomain) {

            localStorage.setItem('Domain', domain);

            let cfmD = confirm("Did you mean to enter: \n" + domain + '?');

Является ли единственный способ противодействовать этой проблеме, избегая этого метода назначения символов для lettersDomain? Или есть другой способ отделить "-" после 9: "9 -]"

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Опустите ваши нежелательные символы, указав ASCII не специального символа. http://www.asciitable.com/

 function onKeyUp(event){
    var k = event.charCode;
    return ((k >= 65 && k <= 90) || (k >= 97 && k <= 122) || (k >= 49 && k <= 57))
    }
1 голос
/ 18 марта 2020

Вы не должны сравнивать строку с регулярным выражением с ==, вы должны сопоставлять строку с регулярным выражением:

let domain = 'qweertryrtyrt';
let domainRegexp = /^[a-zA-Z0-9\-\.]+$/gi;
if (domain.match(domainRegexp) !== null) {
    alert('Correct!');
} else {
    alert('Wrong!'); 
}

Также для включения точки и da sh в регулярное выражение вы должны использовать \ (sla sh), иначе точка означает любой символ.

Документация для match function

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...