Abi*_*hek 3 javascript regex validation
我需要使用具有多个条件的javascript验证字符串.我不知道如何使用正则表达式来做到这一点.
我需要检查字符串是否包含以下任何条件
条件1:以18XX或1-8XX或8XX开头的任何长度的字符串,其中X是0到9之间的任何数字(0和9都包括在内).例如:1800abc,812abc-def,1-805-999-9999
条件2:以NXX或1NXX或1-NXX开头的字符串后跟正好七个不包括连字符的数字,其中N是2到9之间的任意数字(包括2和9),X是0到9之间的任意数字( 0和9都包括在内).例如:12-999-9999,19009998888,1-212 --- 1-2-3-4-5-6-7--
条件3:以XXXXX开头的字符串,其中X是0到9之间的任何数字(0和9都包括在内).例:20176,90210-Melrose
你不可能有一个正则表达式匹配所有这些, 呃可能你可以!见下文
尝试将这三个用于每个条件,检查所有三个条件并仅传递那些不匹配的条件.
条件1: ^1?-?8\d{2}.*$
条件2:首先删除所有超量然后匹配^1?[2-9]\d{7}$
条件3: ^\d{5}.*$
希望这可以帮助
编辑
您可能只有一个可以匹配的正则表达式.因为-似乎是一个可选字符,所以我们先删除它们,但正如@nnnnn在注释中指出的那样,首先检查字符串是否实际上以a 开头,-如果它确实,则字符串通过验证而不进一步检查.那么你可以将这三个串在一起|形成一个你可以检查的正则表达式
^1?8\d{2}.*|1?[2-9]\d{7}|\d{5}.*
我-?从第一部分删除了,因为我们已经删除了所有的大肆宣传.