首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要帮助将PHP代码片段转换为Javascript

需要帮助将PHP代码片段转换为Javascript
EN

Stack Overflow用户
提问于 2011-08-19 22:06:53
回答 1查看 101关注 0票数 1

下面是我开始时的一段代码...然后我根据stackoverflow用户的评论建议做了一些修改。(请参阅下文了解我到目前为止的进展)

原创

代码语言:javascript
运行
复制
$valid = true;

    // basic validation
    $phoneNumber = str_replace( ' ', '', $phoneNumber );
    if ( strlen( $phoneNumber ) < 10 || !is_numeric( $phoneNumber ) ) {
        $valid = false;
    }

    $areaCode  = substr($phoneNumber, 0, 3);
    $prefix    = substr($phoneNumber, 3, 3);
    $mainPhone = substr($phoneNumber, 3, 7);

    // perform the same regex matching:
    if ($valid) {
        $regex = '/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))/';
        $valid = preg_match($regex, $areaCode);
    }
    if ($valid) {
        $regex = '/^(?!\d[1]{2}|[5]{3})([2-9]\d{2})([. -]*)\d{4}$/';
        $valid = preg_match($regex, $mainPhone);
    }

    // perform the original web validation:
    if ( $valid ) {
        // validate area code
        if ( 
             $areaCode == '000' ||
             $areaCode == '111' ||
             $areaCode == '222' ||
             $areaCode == '333' ||
             $areaCode == '444' ||
             $areaCode == '555' ||
             $areaCode == '666' ||
             $areaCode == '777' ||
             $areaCode == '999' ||
             $areaCode == '123' || (is_string($areaCode) && !is_numeric($areaCode))) {
            $valid = false;
        }
    }

    if ( $valid ) {
        // validate prefix
        if ( $prefix == '123' ||
             $prefix == '000' ||
             $prefix == '111' ||
             $prefix == '555' || (is_string($prefix) && !is_numeric($prefix))) {
            $valid = false;
        }
    }

    if ( $valid ) {
        // validate main phone number

        if ( $mainPhone == '2222222' ||
             $mainPhone == '3333333' ||
             $mainPhone == '4444444' ||
             $mainPhone == '6666666' ||
             $mainPhone == '7777777' ||
             $mainPhone == '8888888' ||
             $mainPhone == '9999999' || (is_string($phoneNumber) && !is_numeric($phoneNumber))) {
            $valid = false;
        }
    }

    return $valid;

新的JAVASCRIPT版本(目前为止)

下面是我到目前为止正在转换的代码片段…我还有一些PHP代码在里面,你们能帮我删除/替换这个代码片段吗?

代码语言:javascript
运行
复制
function is_numeric(n) {
        return !isNaN(parseFloat(n)) && isFinite(n);
    }

function phonenumberIsValid(phonenumber)
{

var valid = true;

    // basic validation
    var phonetest = phonenumber.replace(' ','');
    if ( strlen( phonetest ) < 10 || !is_numeric( phonetest ) ) {
       valid = false;
    }

    var areaCode  = phonetest.substr(0,3);
    var prefix    = phonetest.substr(3,3);
    var mainPhone = phonetest.substr(3,7);


    // perform the same regex matching that LeadMaster does:
    if(valid){
        valid = areaCode.match('/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))/');
    }

    if(valid){
        valid = mainPhone.match('/^(?!\d[1]{2}|[5]{3})([2-9]\d{2})([. -]*)\d{4}$/');
    }

    // perform the original web validation:
    if(valid){
        // validate area code
        if ( 
             areaCode == '000' ||
             areaCode == '111' ||
             areaCode == '222' ||
             areaCode == '333' ||
             areaCode == '444' ||
             areaCode == '555' ||
             areaCode == '666' ||
             areaCode == '777' ||
             areaCode == '999' ||
             areaCode == '123' || (!is_numeric(areaCode)) {
             valid = false;
        }
    }

    if(valid) {
        // validate prefix
        if ( prefix == '123' ||
             prefix == '000' ||
             prefix == '111' ||
             prefix == '555' || (!is_numeric(prefix)) {
             valid = false;
        }
    }

    if(valid) {
        // validate main phone number

        if ( mainPhone == '2222222' ||
             mainPhone == '3333333' ||
             mainPhone == '4444444' ||
             mainPhone == '6666666' ||
             mainPhone == '7777777' ||
             mainPhone == '8888888' ||
             mainPhone == '9999999' || (!is_numeric(phoneNumber)) {
             valid = false;
        }
    }

    return valid;

}
EN

回答 1

Stack Overflow用户

发布于 2011-08-19 22:13:59

例如,可以用"myString".match替换PregMatch。

代码语言:javascript
运行
复制
if ($valid) {
    $regex = '/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))/';
    $valid = preg_match($regex, $areaCode);
}

会变成

代码语言:javascript
运行
复制
if(valid){
  valid = areaCode.match('/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))/');
}

代码语言:javascript
运行
复制
str_replace("search","replace",$myString) 

变成了

代码语言:javascript
运行
复制
myString.replace("search","replace") 

实际上,大部分问题都可以自己解决,只需在谷歌中输入类似"str_replace javascript“的内容,然后查找之前的堆栈溢出答案:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7122780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档