我想遍歷一個字串并檢查特定索引處的字符是否在一個字母范圍內;字母表中的“a”到“m”。
有沒有一種快速的方法來做到這一點,而不是宣告一個新的字串或物件并寫出我想要的范圍內的所有字母并檢查當前字母是否是該字串或物件中的一個字符?
/* str takes in a string of characters such as 'askjbfdskjhsdkfjhskdjhf'
count each time a character exists thats not a letter between a-m in the alphabet */
function countOutOfRange(str) {
// count each time a letter shows up thats not within a range of letters
}
uj5u.com熱心網友回復:
與正則運算式一起使用match以回傳回傳的陣列的長度,其中字母不在您的范圍內。
function counter(str) {
return str.match(/[^a-m]/g).length;
}
console.log(counter('zhuresma'));
console.log(counter('bob'));
console.log(counter('abcdefghijklmnopqrstuvwxyz'));
如果你想讓它更靈活:
function counter(str, range) {
const query = `[^${range[0]}-${range[1]}]`;
const regex = new RegExp(query, 'g');
return str.match(regex).length;
}
console.log(counter('zhuresma', ['a', 'b']));
console.log(counter('bob', ['a', 'm']));
console.log(counter('abcdefghijklmnopqrstuvwxyz', ['y', 'z']));
uj5u.com熱心網友回復:
您想使用charCodeAt()回圈遍歷給定字串中的每個字符。
/* str takes in a string of characters such as 'askjbfdskjhsdkfjhskdjhf'
count each time a character exists thats not a letter between a-m in the alphabet */
function countOutOfRange(sentence, beginChar, endChar) {
// count each time a letter shows up thats not within a range of letters
let sum = 0;
for (let i = 0; i < sentence.length; i ) {
if (sentence.charCodeAt(i) > beginChar.charCodeAt(0) &&
sentence.charCodeAt(i) < endChar.charCodeAt(0))
sum ;
}
return sum;
}
console.log(countOutOfRange('askjbfdskjhsdkfjhskdjhf', 'a', 'm'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463630.html
標籤:javascript
