如何使用indexOf在一系列字符之间进行搜索? (ExtendScript)

时间:2013-08-11 09:25:50

标签: javascript extendscript

我想使用.indexOf在用户提交的文本中搜索一系列字符,但我不确定如何处理它。

让我们说:myText =“abcd”,我想搜索一下“ab”是否仅在开始时存在,而且仅限于第二个字符。

如果前两个字符中出现“ab”,那么“do stuff”

如果myText =“abab”我只希望它识别第一个“ab”并执行基于此的命令。

然后我想在另一个indexOf命令中搜索第3个和第4个字符。等

到目前为止,我只能做以下事情:

myText = "abab"
if (myText.indexOf("ab") > -1) alert("Found first 'ab'");

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

要测试字符串开头的子字符串,可以测试它是否完全位于索引0

if (myText.indexOf("ab") === 0) {
    // starts with "ab"
}

在此范围内,您可以通过在索引ab处开始搜索来测试第二个2,并期望它也在那里:

// ...
    if (myText.indexOf("ab", 2) === 2) {
        // followed by "ab"
    }
// ...

示例:http://jsfiddle.net/j7Kmt/

答案 1 :(得分:0)

考虑这个例子

"Blue Whale".indexOf("Blue");     // returns  0
"Blue Whale".indexOf("Blute");    // returns -1
"Blue Whale".indexOf("Whale", 0); // returns  5
"Blue Whale".indexOf("Whale", 5); // returns  5
"Blue Whale".indexOf("", 9);      // returns  9
"Blue Whale".indexOf("", 10);     // returns 10
"Blue Whale".indexOf("", 11);     // returns 10
"Blue Whale".indexOf("ue", 0);     // returns 2

这里第一个参数是character你要找到索引,第二个是起始索引来找到character

在您的情况下,请检查:

myText = "abab"
if (myText.indexOf("ab") == 0) alert("Found first 'ab'");