如何从具有多个命中的字符串中提取第一个子字符串

时间:2017-01-23 23:24:37

标签: javascript for-loop substring

确定。新代码,哇,我喜欢它!但仍然是新手,所以要耐心等待。我正在使用JS。

所以,我试图循环一个字符串来寻找元音。当我在字符串中找到第一个元音时,我想将所有以前的字符存储在变量中。例如: spacing 将呈现 sp 。问题是我得到了多次点击,因为循环一直持续到字符串的末尾并且在此过程中发现了更多的元音,同时也给出了 ng ,在这种情况下作为结果。

for (var i = 0; i < text.length; i++) {
        if ("a" === text[i] || "e" === text[i] || "i" === text[i] || "o" === text[i] || "u" === text[i] || "y" === text[i]) {
            var textTrimmed = text.substring(0, i);
        }
}

那么:存储第一个命中? 任何人都知道我可以使用的一个巧妙的技巧,并理解?

2 个答案:

答案 0 :(得分:0)

如果您正在寻找“巧妙的技巧”,我建议您使用Regular ExpressionssliceBeforeFirstVowel函数在字符串的开头搜索并返回任何连续的非元音,不区分大小写。我根据您的代码添加了y,但请注意,它并不总是用作元音,因此函数名称可能会有点误导。

function sliceBeforeFirstVowel (text) {
    return /^[^aeiouy]*/i.exec(text)[0]
}

console.log('spacing ->', sliceBeforeFirstVowel('spacing'))

答案 1 :(得分:-1)

您始终可以使用break,这会将您带出for循环。