Найти строку, которая начинается в массиве AS3 - PullRequest
0 голосов
/ 15 апреля 2011

Я хочу запретить пользователям использовать эмуляторы веб-камеры, я сделал это в AS2 с помощью функции senocular, но я не могу заставить его работать в AS3, поэтому вот старый версия от Senocular , и я хотел бы сделать то же самое в AS3 , пробовал использовать indexOf , но не работает, мне нужно найти хотя бы первые 4 символастроку и сравните их с элементом внутри массива в AS3!

String.prototype.startsWith = function(str){
        return !this.indexOf(str);
    }

вот что я хочу сделать:

var bannedDevices = new Array("FakeCam","SplitCam","Phillips Capture Card 7xx","VLC");

var myDeviceName = "SplitCam v1.5";  //"Splitcam" in bannedDevices should trigger this;

if (myDeviceName.indexOf(bannedDevices)){
   trace("banned device");
}

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

ОК, я оставляю свой предыдущий ответ для истории.Теперь, когда я понял, что вы хотите:

public function FlashTest() {
    var bannedDevices:Array = new Array("FakeCam","SplitCam","Phillips Capture Card 7xx","VLC");

    var myDeviceName:String = "SplitCam v1.5";  //"Splitcam" in bannedDevices should trigger this;

    trace(startsWith(myDeviceName, bannedDevices, 4));
}

/**
* @returns An array of strings in pHayStack beginning with pLength first characters of pNeedle
*/
private function startsWith(pNeedle:String, pHayStack:Array, pLength:uint):Array
{
    var result:Array = [];
    for each (var hay:String in pHayStack)
    {
        if (hay.match("^"+pNeedle.substr(0,pLength)))
        {
            result.push(hay);
        }
    }
    return result;
}
1 голос
/ 15 апреля 2011

Ваша потребность не очень понятна ... Вот функция, которая возвращает каждую строку из массива, который начинается с данной строки.

public function FlashTest() {
    var hayStack:Array = ["not this one", "still not this one", "ok this one is good", "a trap ok", "okgood too"];

    trace(startsWith("ok", hayStack));
}

/**
* @returns An array of strings in pHayStack beginning with the given string
*/
private function startsWith(pNeedle:String, pHayStack:Array):Array
{
    var result:Array = [];
    for each (var hay:String in pHayStack)
    {
        if (hay.match("^"+pNeedle))
        {
            result.push(hay);
        }
    }
    return result;
}
...