确定字符串中第一个字母的大小写(大写/小写)

发布于 2024-12-11 05:48:15 字数 57 浏览 0 评论 0原文

在 Web 应用程序中,如何使用 JavaScript 确定给定字符串中的第一个字母是大写还是小写?

In a web application, how do I determine whether the first letter in a given string is upper- or lower-case using JavaScript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

挖鼻大婶 2024-12-18 05:48:15

您可以使用 toUpperCase

if(yourString.charAt(0) === yourString.charAt(0).toUpperCase()) {
    //Uppercase!
}

如果您打算定期使用它,我建议将其放入 String 原型的函数中,如下所示:

String.prototype.isFirstCapital = function() {
    return this.charAt(0) === this.charAt(0).toUpperCase();   
}
if(yourString.isFirstCapital()) {
    //Uppercase!
}

Update (基于评论)

我不知道在字符串不包含字母的情况下您实际上想要做什么,但一个简单的解决方案是添加一个快速检查以查看它是否包含字母,并且如果不是则返回 false:

String.prototype.isFirstCapital = function() {
    return /^[a-z]/i.test(this) && this.charAt(0) === this.charAt(0).toUpperCase();   
}

You can use toUpperCase:

if(yourString.charAt(0) === yourString.charAt(0).toUpperCase()) {
    //Uppercase!
}

If you're going to be using this on a regular basis, I would suggest putting it in a function on the String prototype, something like this:

String.prototype.isFirstCapital = function() {
    return this.charAt(0) === this.charAt(0).toUpperCase();   
}
if(yourString.isFirstCapital()) {
    //Uppercase!
}

Update (based on comments)

I don't know what you actually want to do in the case that the string does not being with a letter, but a simple solution would be to add a quick check to see if it does or not, and return false if not:

String.prototype.isFirstCapital = function() {
    return /^[a-z]/i.test(this) && this.charAt(0) === this.charAt(0).toUpperCase();   
}
暖树树初阳… 2024-12-18 05:48:15

这仅适用于英文字母。

var ch = myStr.chatAt(0);
if (ch >= 'a' && ch <= 'z') {
    // small
} else if (ch >= 'A' && ch <= 'Z') {
    // capital
} else {
    // not english alphabet char
}

This will work only with English alphabet.

var ch = myStr.chatAt(0);
if (ch >= 'a' && ch <= 'z') {
    // small
} else if (ch >= 'A' && ch <= 'Z') {
    // capital
} else {
    // not english alphabet char
}
夜还是长夜 2024-12-18 05:48:15
var mystring = "Test string";
var first= "";
if (mystring )
{
    first= mystring[1];
}


if (first)
{
    $('p').each(function()
    {
        if ($(this).text().charAt(0).toUpperCase() === $(this).text().charAt(0))
        {
           alert("Uppercase");
        }
    });
}
var mystring = "Test string";
var first= "";
if (mystring )
{
    first= mystring[1];
}


if (first)
{
    $('p').each(function()
    {
        if ($(this).text().charAt(0).toUpperCase() === $(this).text().charAt(0))
        {
           alert("Uppercase");
        }
    });
}
少女净妖师 2024-12-18 05:48:15

这将被递归调用,直到接近字符串中的第一个字母,否则返回'no letter'

function getFirstCase(string) {
    if (string === '') return 'no letters';

    var firstChar = string.charAt(0);

    /*
     * If both lowercase and uppercase
     * are equal, it is not a letter
     */
    if (firstChar.toLowerCase() === firstChar.toUpperCase()) {
        return getFirstCase(string.substr(1));
    } else {
        return firstChar.toLowerCase() === firstChar ? 'lowercase' : 'uppercase';
    }
}

测试:

console.log(getFirstCase('alphabet'), 
            getFirstCase('Sunshine'),
            getFirstCase('123123'),
            getFirstCase('@Hi'),
            getFirstCase('\nHAHA'));

This will be called recursively until a first letter in a string is approached, otherwise returns 'no letters'.

function getFirstCase(string) {
    if (string === '') return 'no letters';

    var firstChar = string.charAt(0);

    /*
     * If both lowercase and uppercase
     * are equal, it is not a letter
     */
    if (firstChar.toLowerCase() === firstChar.toUpperCase()) {
        return getFirstCase(string.substr(1));
    } else {
        return firstChar.toLowerCase() === firstChar ? 'lowercase' : 'uppercase';
    }
}

Testing:

console.log(getFirstCase('alphabet'), 
            getFirstCase('Sunshine'),
            getFirstCase('123123'),
            getFirstCase('@Hi'),
            getFirstCase('\nHAHA'));
破晓 2024-12-18 05:48:15

我很惊讶没有人为此提供正则表达式解决方案 - 这似乎是迄今为止最简单的:

function getFirstCase(s) {
    return (/^[\d\W]*[A-Z]/).test(s) ? 'upper' :
        (/^[\d\W]*[a-z]/).test(s) ? 'lower' :
        'none';
}

公然窃取@Lapple的测试用例:

console.log(getFirstCase('alphabet'), 
            getFirstCase('Sunshine'),
            getFirstCase('123123'),
            getFirstCase('@Hi'),
            getFirstCase('\nHAHA'));

// lower upper none upper upper

请参阅 http://jsfiddle.net/nrabinowitz/a5cQa/

I'm surprised no one's offered a regex solution to this - it seems like the easiest by far:

function getFirstCase(s) {
    return (/^[\d\W]*[A-Z]/).test(s) ? 'upper' :
        (/^[\d\W]*[a-z]/).test(s) ? 'lower' :
        'none';
}

Blatantly stealing @Lapple's test cases:

console.log(getFirstCase('alphabet'), 
            getFirstCase('Sunshine'),
            getFirstCase('123123'),
            getFirstCase('@Hi'),
            getFirstCase('\nHAHA'));

// lower upper none upper upper

See http://jsfiddle.net/nrabinowitz/a5cQa/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文