string.search(“。”)总是返回0

时间:2011-01-01 16:22:53

标签: regex flex actionscript-3 flashbuilder4

我在Flash Builder 4中工作。 在Flex上创建电子邮件验证程序。 有这个代码

    public var s:String="";

    public function checkSumbols(_s:String=""):Boolean {

        s=_s;  //e-mail address (input mail@supermail.com)

        var hDog:int=0; 
        var hPoint:int=0;
        //check @
        hDog=s.search("@");
        trace(hDog)  // It's work
        if(hDog==-1) {
            return false;
        } else {
            hPoint=s.substr(hDog).search(".");
            trace(hPoint); // PANIC this return always 0
            if(hPoint==-1){
               return false;
        }}
    }

3 个答案:

答案 0 :(得分:5)

你可以使用正则表达式。由于dot(。)在正则表达式中具有特殊含义,因此您需要在之前放置“escape”字符:yourString.search(/\./); 应该管用。 HTH FTQuest

答案 1 :(得分:2)

search()接受一个模式,而.只意味着“一个字符”,所以它可能会返回第一个单字符,很可能是在索引0处。

您可以尝试search("\.")

答案 2 :(得分:0)

我尝试使用搜索(/[.]/)并且在javascript中运行良好,我认为它可以在as3中以相同的模式工作