返回大写字母AS3索引数组

时间:2013-10-30 04:16:03

标签: arrays actionscript-3 indexing

我想采用普通字符串,并返回一个只包含大写字母索引的数组。

基本上是这样的:

var str1:String =“TexT STufF” var capArray = [0,3,5,6,9]

我能够为这样的空间做到这一点:

for(var n5=0; n5 < str1.length; n5++)
    {
        numSpace = str1.indexOf(" ", numSpace+1); //That space is what determines it. How do I make it search for all Caps?
        if(numSpace == -1)
        {
            n5 = str1.length;
        }
        else{arySpaceInd[n5] = numSpace;}
    }
    trace(aryVerse);

是否有可能为首都做这件事?

2 个答案:

答案 0 :(得分:1)

就像@Cherniv指出的那样,只需将序列中的每个字符转换为大写字母并检查它是否相同。如果是,那就是大写字母。功能示例:

function getIndexes(input:String):Vector.<int>
{
    var output:Vector.<int> = new <int>[];
    for(var i:int = 0; i < input.length; i++)
    {
        if(input.charAt(i).toUpperCase() === input.charAt(i))
        {
            output.push(i);
        }
    }

    return output;
}

测试:

trace(getIndexes("SomeUpperCaseText")); // 0,4,9,13

答案 1 :(得分:1)

我会( mis )使用string#replace()来做这件事......这样的事情应该有效:

function getIndexes(input:String):Vector.<int>
{
    var output:Vector.<int> = new <int>[];
    input.replace(/[A-Z]/g, function(match,ndx) { output.push(ndx); return match; });
    return output;
}