Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 创建信用卡正则表达式_Regex - Fatal编程技术网

Regex 创建信用卡正则表达式

Regex 创建信用卡正则表达式,regex,Regex,我想创建一个信用卡正则表达式。但我希望它忽略这个正则表达式中的空格 为此,我创建了以下格式:4444(例如,这是一个信用卡号,其间有一个空格,它可以读取。) 但是我想要的是4 4 4 4(即使是这样一个信用卡号也能识别出来,并且在看不到空白的情况下阅读它 (\D|)4[0-9]{3}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}\S+|(\D|$) 一个正则表达式来匹配16位数字(可选地用空格或连字符分隔)是很容易的 /(?:(\d)[-]?)

我想创建一个信用卡正则表达式。但我希望它忽略这个正则表达式中的空格

为此,我创建了以下格式:
4444
(例如,这是一个信用卡号,其间有一个空格,它可以读取。)

但是我想要的是
4 4 4 4
(即使是这样一个信用卡号也能识别出来,并且在看不到空白的情况下阅读它

(\D|)4[0-9]{3}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}(\ |\-|)[0-9]{4}\S+|(\D|$)

一个正则表达式来匹配16位数字(可选地用空格或连字符分隔)是很容易的

/(?:(\d)[-]?){15}(\d)/

()用未捕获的零个或多个空格捕获一个数字,并重复16次

/\s*(\d(?:\s*)){16}\s*/

为什么您决定需要正则表达式来识别字符串中的数字?只需迭代字符串并拉出数字,忽略空格(可能还有连字符)然后检查您是否有16位数字并且您是油炸圈饼,但这不是信用卡号码。此正则表达式还接受有效信用卡,接受无效的随机16位数字。我只想接受16位信用卡number@virile…嗯?我想接受有效信用卡的号码,而不是接受随机号码乐:(维萨:45 4 3 5 1 2 6 4 2 3 1 2 4 7 3)我相信你能做的最好的事情就是按照这个例子来验证信用卡发卡机构,但不会(显然)能够计算和验证卡片校验和。@virile我们在兜圈子。我不知道还有什么话要说,还没有说。祝你好运。除非你只想匹配四位数字,否则不。。。?