Как проверить, является ли свойство объектов js ТОЛЬКО строчными буквами с помощью регулярного выражения? - PullRequest
0 голосов
/ 22 сентября 2018

Вот мой класс:

class Cipher(){     
    constructor(key) {
        this.key = !key ? String.fromCharCode(...Array.from({ length: 100 }, () => Math.floor(Math.random() * 26 + 97)),): key;
        if (this.key === '' || this.key.match(/[a-z]/g) !== this.key) {
            throw new Error('Bad key');
        }
     }
   }

В основном я хочу:

const foo = new Cipher();
console.log(foo.key);
// random 100 character string
const foo = new Cipher("bar");
console.log(foo.key);
// bar
const foo = new Cipher("Bar")
// [Error 'Bad key']

, но каждый тест, который я ставил, где вызывается 'new Cipher ()' (экземпляр безпроанализирован аргумент) код выдает ошибку, в основном я хочу, чтобы он распознал, что я уже сделал случайный ключ из 100 строчных букв, и использовал его вместо этого ...

1 Ответ

0 голосов
/ 22 сентября 2018

Я думаю, что ваш вопрос:

Я хочу создать 100-буквенную строку случайных букв для key, когда мой конструктор вызывается без аргумента, но для использования заданного key если есть.Но я хочу потребовать, чтобы в key были только строчные буквы.

Если это так:

constructor(key) {
    if (key) {
        if (/[^a-z]/.test(key)) {     // true if any character in key isn't a-z
           throw new Error('Bad key');
        }
        this.key = key;
    } else {
        this.key = String.fromCharCode(
            ...Array.from({ length: 100 }, () => Math.floor(Math.random() * 26 + 97))
        );
    }
}

Live Пример:

class Example {
    constructor(key) {
        if (key) {
            if (/[^a-z]/.test(key)) {     // true if any character in key isn't a-z
               throw new Error('Bad key');
            }
            this.key = key;
        } else {
            this.key = String.fromCharCode(
                ...Array.from({ length: 100 }, () => Math.floor(Math.random() * 26 + 97))
            );
        }
    }
}
console.log('new Example():');
console.log(new Example().key);
console.log('new Example("foo"):');
console.log(new Example("foo").key);
console.log('new Example("Bad"):');
console.log(new Example("Bad").key);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...