Как проверить по чай, если строка содержит пять @? - PullRequest
1 голос
/ 04 мая 2019

У меня есть строка:

const hash = 'dwqdiojqwoidj@2323joij@oindoi2d@dndi2on@diodno@1';

Как я могу проверить, содержит ли эта строка ровно пять @?

Я могу проверить, содержит ли строка один @:

expect(hash).to.include('@');

Ответы [ 2 ]

3 голосов
/ 04 мая 2019

Вы можете сосчитать вхождения и затем проверить их:

const hash = 'dwqdiojqwoidj@2323joij@oindoi2d@dndi2on@diodno@1';
const count = (hash.match(/@/g) || []).length;
expect(count).to.equal(5);
2 голосов
/ 04 мая 2019
let isValid = 0
for (let i = 0; i < hash.length; i++) {
    if (hash.includes("@", i)){
       isValid++;
       if(isValid === 5) {
           // do something   (true)
       }
    } else { 
       // do something   (false)
    }
}
...