用于Javascript的正则表达式模式并验证相同

时间:2015-07-22 07:45:13

标签: javascript regex

我的MVC应用程序中有一个文本框,我只允许文本为012-345-6 pattern.I我是regex的新手,从来没有创建我自己的.. 我必须从javascript验证相同的模式。

3 个答案:

答案 0 :(得分:2)

要验证regex模式,您可以使用以下^\d{3}-\d{3}-\d$

\d

您还可以使用^(\d{3}-){2}\d$缩短版本。

<强>解释

  1. {n}:匹配任何数字
  2. n:与前一个字符类-完全匹配次数
  3. -:匹配^ literal
  4. $:以
  5. 开头
  6. var regex = /^\d{3}-\d{3}-\d$/; document.getElementById('myText').addEventListener('keyup', function() { var value = this.value; if (value && regex.test(value)) { console.log('if'); this.classList.add('success'); } else { console.log('else'); this.classList.remove('success'); } }, false);:结尾
  7. <强>可视化

    enter image description here

    <强>演示:

    &#13;
    &#13;
    input[type=text] {
      border: 1px solid red;
    }
    .success {
      border: 1px solid green !important;
    }
    &#13;
    <input type="text" id="myText" />
    &#13;
    $meta_query = array();
    if($sltNationality != '' && $sltNationality != 'Any') { // nationality query
        array_push($meta_query, array(
            'key'       => 'nationality',
            'value'     => $sltNationality
        ));
    }
    if($age != '' && $age != 'Any') { // age query
        // assuming your select values are always in this format : 21 - 30, 31 -40 etc.
        $age = explode(' - ', $age); 
        $min_year   = (int)date('Y') - (int)$age[1];
        $max_year  = (int)date('Y') - (int)$age[0];
        // build a regex to get all the birth date in the year range
        $year_regex = array();
        for($y = $min_year; $y < $max_year; $y++) {
            array_push($year_regex, strval($y));
        }
        array_push($meta_query, array(
            'key'       => 'age',
            'value'     => '^[0-9]{2}-[0-9]{2}-('.implode('|', $year_regex).')$',
            'compare' => 'REGEXP'
        ));
    }
    $args = array(
        'posts_per_page' => -1,
        'post_type' => 'user',
        'meta_query' => $meta_query
    );
    $users = get_posts($args);
    
    &#13;
    &#13;
    &#13;

答案 1 :(得分:1)

试试这样:

^(\d{3}\-){2}\d$

Demo

答案 2 :(得分:0)

尝试以下锚定的正则表达式。

^\d{3}-\d{3}-\d$
  • ^开始
  • \d{3}正好匹配三位数字。
  • \d匹配一位数。
  • $行尾。