【问题标题】:Javascript Validation with regex使用正则表达式进行 Javascript 验证
【发布时间】:2018-12-21 06:46:29
【问题描述】:

我正在尝试进行 jquery 验证。

在第一个中,我想要一个字母,然后是 8 个数字字符,然后是破折号 (-),然后是字母。例如:C12345678-C

第二个与第一个相同,但不以字母开头:例如:12345678-C

我试过var dni = /^(([0-9]{8}+)-\w+([a-z]{1}\w+)*)$/;

如何做到这一点?

【问题讨论】:

  • 请提供您尝试过的代码。
  • var dni = /^(([0-9]{8}+)-\w+([a-z]{1}\w+)*)$/;
  • 这是12345678-C这种格式
  • 实际上这个工作,但我想限制数字意味着没有人输入超过 8 个数字
  • 所以请编辑您的问题并在此处插入您的代码。

标签: javascript jquery regex


【解决方案1】:

试试这个模式

var pattern = /^([A-Z]{1}[\d]{8}-[A-Z]{1}|[\d]{8}-[A-Z]{1})$/

【讨论】:

    【解决方案2】:

    使用下面的正则表达式检查并添加您的逻辑

    你也可以在这个link中检查/测试

    http://jsfiddle.net/shoesheill/smqtywgh/1/

    var sentence="SushilC12345678-CShrestha";
    var firstRegex=/[a-zA-z]{1}[0-9]{8}-[a-zA-z]{1}/gm;
    var pattern1=sentence.match(firstRegex);
    var secondRegex=/[0-9]{8}-[a-zA-z]{1}/gm;
    var pattern2=sentence.match(secondRegex);
    alert("First Pattern is: "+pattern1);
    alert("Second Pattern is: "+pattern2);
    

    【讨论】:

      【解决方案3】:

      我认为以下正则表达式应该可以完成这项工作:

      C12345678-C --> /([A-Z]{1}\d{8}\-+[A-Z]{1})/g

      12345678-C --> /(\d{8}\-+[A-Z]{1})/g

      如果需要,可以切换为小写字符。

      【讨论】:

        【解决方案4】:

        用代码试试 -

        "C12345678-C".match("^[A-Z]{1}[1-9]{8}[-]{1}[A-Z]{1}$") 
        "12345678-C".match("^[1-9]{8}[-]{1}[A-Z]{1}$")
        

        【讨论】:

          【解决方案5】:

          试试这个:

          /^[A-Za-z]?\d{8}\-[A-Za-z]$/;
          

          var patt = /^[A-Za-z]?\d{8}\-[A-Za-z]$/;
          
          console.log( patt.test('12345678-C') );
          console.log( patt.test('a12345678-C') );
          console.log( patt.test('*12345678-C') );
          console.log( patt.test('*12345678C') );

          【讨论】: