正则表达式的各种验证 [英] Various Regex Validation

查看:122
本文介绍了正则表达式的各种验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的正则表达式。我有一个数组(称之为ARR1)与什锦值。我想,以验证它为与ARR1元素的格式如下[X]作为示例提供

  ARR1 [X] =项目1,项目2,项目3,ITEM4,ITEM5:第1项 - ABCDEF(字母可变数量)或ABCDEF ASDF(由一个空格字符分隔的字母数目可变)
第2项 - ABCDEF(字母可变数量)或ABCDEF ASDF(由一个空格字符分隔的字母数目可变)
第3项 - 12345678(8位)
第4项 - 123 456 7890(3位数字加3位数字的电话号码后4位数字有两个空白字符如上图所示)

下面是我所拥有的电话号码验证的片段(不知道第二行是如何工作 - 从不同的线程SO得到了它):

 函数F(S){
  变种S2 =(+ S).replace(/ \\ D /克,'');
  变种M = s2.match(/ ^(\\ d {3})(\\ d {3})(\\ d {4})$ /);
}

在此先感谢的任何援助。


解决方案

您可以试试这个正则表达式来解释所有的情况:

  ^(?:?[AZ] +(?:[AZ] +)| \\ D {8} | \\ d {3} \\ D {3} \\ D {4 })$

使用它,我选项,例如:

  VAR重新= / ^(?:?[AZ] +(?:[AZ] +)| \\ D {8} | \\ d {3} \\ D {3} \\ D {4})$ / I;
如果(re.exec(S)!== NULL){
    返回true;
}

有一个看演示

\r
\r

VAR重新= / ^(?:[AZ] +(?:[AZ ?] +)| \\ D {8} | \\ d {3} \\ D {3} \\ D {4})$ / I;\r
无功海峡='ABCDEF';\r
如果(re.exec(STR)!== NULL){\r
    警报(真);\r
}

\r

\r
\r

I'm new to regex. I have an array (call it arr1) with assorted values. I am trying to validate that it has the following format for its elements with arr1[x] provided as an example

arr1[x] = "item1, item2, item3, item4, item5":

item 1 - "abcdef" (variable number of letters) or "abcdef asdf" (variable number of letters separated by one whitespace character)
item 2 - "abcdef" (variable number of letters) or "abcdef asdf" (variable number of letters separated by one whitespace character)
item 3 - "12345678" (eight digits)
item 4 - "123 456 7890" (telephone number with 3 digits followed by 3 digits followed by 4 digits with two whitespace characters as shown)

Here is a snippet of what I have for phone number validation (not sure how the second line works - got it from a different SO thread):

function f(s) {
  var s2 = (""+s).replace(/\D/g, '');
  var m = s2.match(/^(\d{3})(\d{3})(\d{4})$/);
}

Thanks in advance for any assistance.

解决方案

You can try this regex to account for all your cases:

^(?:[a-z]+(?: [a-z]+)?|\d{8}|\d{3} \d{3} \d{4})$

Use it with i option, e.g.:

var re = /^(?:[a-z]+(?: [a-z]+)?|\d{8}|\d{3} \d{3} \d{4})$/i; 
if (re.exec(s) !== null) {
    return true;
}

Have a look at the demo.

var re = /^(?:[a-z]+(?: [a-z]+)?|\d{8}|\d{3} \d{3} \d{4})$/i; 
var str = 'abcdef';
if (re.exec(str) !== null) {
    alert(true);
}

这篇关于正则表达式的各种验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆