在magento结帐页面中进行总体国家电话号码验证

时间:2015-03-18 08:47:48

标签: javascript php validation magento

magento结帐页面的总体国家电话号码验证

我为电话号码validation.js添加正则表达式 JS /原型/ validation.js

['validate-phoneStrict',
 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.',
 function(v)
 {
     return Validation.get('IsEmpty').test(v)
         || /\(?([0-9]{4})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/.test(v);
 }
],

我需要整个国家的正则表达式,....请帮助我

2 个答案:

答案 0 :(得分:1)

HTML代码

<input type="text" name="telephone" id="telephone" value="<?php echo $this->htmlEscape($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text validate-numeric-contact" />

js代码在billing.phtml中添加以下

<script type="text/javascript">
    //<![CDATA[

if(Validation) {
        Validation.addAllThese([
        ['validate-numeric-contact','Enter correct mobile number',
        function(v){
        var timePat ="^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1}){0,1}9[0-9](\s){0,1}(\-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$";
        // var matchArray = v.match(timePat);
        if(v.length > 0){
        if(v.length !=10){
            return false;
           }else if(v[0] != 9 || v[1] != 1 ){

            //return false;
           }else if(v[2]!=9 && v[2]!=8 && v[2]!=7){

            return false;
           }


        return true;

        }else {
        return false;
        }

        }
        ]])};
        var dataForm = new VarienForm('form-id', true);

//]]>

</script>  

答案 1 :(得分:0)

请在网站上搜索相关问题。

What regular expression will match valid international phone numbers?这包含您需要的正则表达式。

您的示例解决方案是:

[ 'validate-phoneStrict',
  'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.',
  function(v)
  {
      return Validation.get('IsEmpty').test(v)
          || /\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$/.test(v);
  }
]

我在上面的问题中使用了接受的答案,而不是自己测试。另请阅读该页面上关于此正则表达式的警告的最后一个答案