这个挑战的描述是将一个字符串中的字母替换为该字母在字母表中的位置,从1开始计数。要求您跳过所有非字符,包括空格。
function alphabetPosition(text) {
var result = [];
var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z"]
text = text.replace(/\W*\d+/g, '').toLowerCase().split('');
for (var i = 0; i < text.length; i++)
result.push(alphabet.indexOf(text[i]) + 1);
return result.join(' ');
}
我的问题是在进行随机测试时,输入会包含数字和非单词字符,但正则表达式无法识别。输入为
n8_ovuu&
,输出/错误是期望值为:“14 15 22 21 21”,实际得到的是:“14 0 15 22 21 21 0”
。问题出在正则表达式上,但我无法解决它。如果您有任何想法,我会非常感谢您的帮助!
indexOf
就像数组一样。 - trincot