You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActionScript 2字符串按指定顺序包含指定字符的检测实现求助

在ActionScript 2中检测字符串是否按顺序包含特定字符

没问题,我来帮你搞定这个需求!咱们的核心思路是按顺序逐个查找目标字符,每找到一个就从它的下一个位置开始找下一个字符,这样就能确保字符出现的顺序完全符合要求。

实现代码

这里直接给你写好可复用的函数,还有对应的测试示例:

function doesContainInOrder(sourceStr:String, targetChars:Array):Boolean {
    var currentPos:Number = 0;
    
    // 遍历每个需要查找的目标字符
    for (var i:Number = 0; i < targetChars.length; i++) {
        var charToFind:String = targetChars[i];
        // 从当前位置开始查找字符
        var foundPos:Number = sourceStr.indexOf(charToFind, currentPos);
        
        // 如果找不到这个字符,直接返回false
        if (foundPos == -1) {
            return false;
        }
        
        // 更新当前位置为找到的位置+1,确保下一个字符在它之后出现
        currentPos = foundPos + 1;
    }
    
    // 所有字符都按顺序找到了,返回true
    return true;
}

// 测试你的示例场景
var testStr:String = "wqeeqwe j qwqwq a retrt v iyiiyi a ";
var targetWord:Array = ['j', 'a', 'v', 'a'];

if (doesContainInOrder(testStr, targetWord)) {
    trace("字符串按顺序包含'j,a,v,a'!执行相应操作...");
    // 这里写你需要执行的操作,比如弹窗、跳转等
} else {
    trace("字符串没有按顺序包含目标字符");
}

代码解释

  • doesContainInOrder函数接收两个参数:sourceStr是要检测的原字符串,targetChars是按顺序需要匹配的字符数组(比如你要找的['j','a','v','a'])
  • 用currentPos记录当前查找的起始位置,每找到一个字符就把起始位置往后移一位,保证后续字符必须出现在当前字符的后面
  • indexOf(charToFind, currentPos)方法会从currentPos开始查找指定字符,找不到就返回-1,这时候直接判定不符合条件
  • 如果所有目标字符都按顺序找到,函数就返回true,你就可以在if块里执行你需要的操作了

这个方法既高效又灵活,不管你要检测的是几个字符的序列,只要传入对应的字符数组就行~

内容的提问来源于stack exchange,提问作者Motimot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:09:14