【问题标题】:Detect presence of a specific pattern in Javascript String检测 Javascript 字符串中是否存在特定模式
【发布时间】:2013-10-02 16:01:58
【问题描述】:

如果 Javascript 字符串包含以下模式,我该如何搜索:

“@aRandomString.temp”

我想知道字符串是否包含@字符,然后是任何字符串,然后是“.temp”字符串。

谢谢

【问题讨论】:

  • 带有“随机字符串”的模式不是“特定字符串” :-) 你可以修正你的标题……

标签: javascript regex string indexof


【解决方案1】:

这个班轮应该使用regex#test(Strng)来完成这项工作:

var s = 'foo bar @aRandomString.temp baz';
found = /@.*?\.temp/i.test(s); // true

【讨论】:

    【解决方案2】:

    使用indexOf 在字符串中查找字符串。

    var string = "@aRandomString.temp";
    var apos = string.indexOf("@");
    var dtemp = string.indexOf(".temp", apos); // apos as offset, invalid: ".temp @"
    if (apos !== -1 && dtemp !== -1) {
        var aRandomString = string.substr(apos + 1, dtemp - apos);
        console.log(aRandomString); // "aRandomString"
    }
    

    【讨论】:

    • 我不明白 (+1),但你的解决方案有点复杂 :-) 另外 OP 只想知道匹配是否存在,而不是随机字符串是什么。
    【解决方案3】:

    你可以试试这个

    var str = "@something.temp";
    
    if (str.match("^@") && str.match(".temp$")) {
    
    }
    

    demo

    【讨论】:

    • 该问题要求“包含”,而不是“是”。另外,忘记转义你的正则表达式,你应该使用test 而不是match
    【解决方案4】:

    您可以使用匹配功能。 match 需要正则表达式。

    function myFunction()
    {
        var str="@someting.temp"; 
        var n=str.test(/@[a-zA-Z]+\.temp/g);
    }
    

    这是一个演示:http://jsbin.com/IBACAB/1

    【讨论】:

    • .temp 部分呢?另外,请使用test 而不是match
    • 我在正则表达式中有它:(/@[a-zA-Z]+\.temp
    • @Bergi 我假设字符串只包含字母
    猜你喜欢
    • 2020-07-29
    • 1970-01-01
    • 2019-02-28
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多