在字符串中查找第一个字母 - Javascript

时间:2014-05-13 13:04:23

标签: javascript string

我做了一些研究,似乎找不到办法做到这一点。我甚至尝试使用for循环遍历字符串并尝试使用函数isLetter()charAt()。 我有一个字符串,例如街道地址:

var streetAddr = "45 Church St";

我需要一种方法来遍历字符串并找到该字符串中的第一个字母。在此之后,我需要在其他地方使用该角色。对于上面的例子,我需要函数返回 C 的值。这样做的好方法是什么?

4 个答案:

答案 0 :(得分:8)

也许是最简短的解决方案之一:

'45 Church St'.match(/[a-zA-Z]/).pop();

如果字符串中没有字母数字字符,match将返回null,您可以将其转换为以下傻瓜式解决方案:

('45 Church St'.match(/[a-zA-Z]/) || []).pop();

答案 1 :(得分:7)

只需检查字符是否在A-Z或a-z

范围内
function firstChar(inputString) {
    for (var i = 0; i < inputString.length; i += 1) {
        if ((inputString.charAt(i) >= 'A' && inputString.charAt(i) <= 'Z') || 
            (inputString.charAt(i) >= 'a' && inputString.charAt(i) <= 'z')) {
            return inputString.charAt(i);
        }
    }
    return "";
}

console.assert(firstChar("45 Church St") === "C");
console.assert(firstChar("12345") === "");

答案 2 :(得分:6)

可以使用match

完成此操作
"45 Church St".match(/[a-z]/i)[0]; // "C"

答案 3 :(得分:0)

此代码示例应完成工作。

function numsNletters(alphanum) {
    firstChar=alphanum.match(/[a-zA-Z]/).pop();
    numsLetters=alphanum.split(firstChar);
    numbers=numsLetters[0];
    // prepending the letter we split on (found with regex at top)
    letters=firstChar+numsLetters[1];
    return numbers+'|'+letters;
}

numsNletters(“ 123abc”); //返回“ 123 | abc”;