Table of Contents
Line with certain chars
//e.g. line contains "hostlike"
(?<=^)[^\n]*?hostlike[^\n]*(?=$)
All Letters in all languages (Except 2E00 - 2FFF):
\p{L}
Chinese chars:
\p{Han}
or:
[\x{4e00}-\x{9fa5}]
C#:
var CHINESE1 = @"\p{IsCJKUnifiedIdeographsExtensionA}";
var CHINESE2 = @"\p{IsCJKUnifiedIdeographs}";
@$"[{CHINESE1}{CHINESE2}]"
Regex.IsMatch(name, @$"[{CHINESE1}{CHINESE2}]") //true if name contains Chinese word.
3400-4DBF IsCJKUnifiedIdeographsExtensionA
4DC0-4DFF IsYijingHexagramSymbols
4E00-9FFF IsCJKUnifiedIdeographs
3100-312F IsBopomofo
Punctuations (Chinese and English):
\p{P}
e.g. (punctuation + some special chars) (matched in PHP, C#):
!"#%&'()*,-./:;?@[\]_{}¡§«·»¿;։֊؊٫٬‘’‚‛“”„‟′″‴‵‶‷%‰‱
、。〃〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰゠・
︐︑︒︓︔︕︖︗︘︙﹅﹆﹇﹈﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹙﹚﹛﹜﹝﹞﹟﹠﹡﹣()*,-./:;?@[\]_{}⦅⦆。「」、・
—―‖‗†‡•‣․‥…‧‸‹›※‼‽‾‿⁀⁁⁂⁃⁄⁅⁆⁇⁈⁉⁊¶⁋⁌⁍⁎⁏⁐⁑⁓⁔⁕⁖⁗⁘⁙⁚⁛⁜⁝⁞〈〉⌈⌉⌊⌋❨❩❪❫❬❭❮❯❰❱❲❳❴❵⟅⟆⟦⟧⟨⟩⟪⟫⟬⟭⟮⟯⦃⦄⦅⦆⦇⦈⦉⦊⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖⦗⦘⧘⧙⧚⧛⧼⧽⳹⳺⳻⳼⳾⳿⸀⸁⸂⸃⸄⸅⸆⸇⸈⸉⸊⸋⸌⸍⸎⸏⸐⸑⸒⸓⸔⸕⸖⸗⸘⸙⸚⸛⸜⸝⸞⸟⸠⸡⸢⸣⸤⸥⸦⸧⸨⸩⸪⸫⸬⸭⸮ⸯ⸰⸱⸲⸳⸴⸵⸶⸷⸸⸹⸼⸽⸾⸿⹀⹁⹂
Chinese Phonetic Notation(注音符号):
\p{IsBopomofo}
All HTML tags:
</?\w.*?>
All HTML attributes:
\s+\w+=[\w\W\s]+?(?=>)
URL
(https?:)?\/\/(www\.)?[\d\w.-]{2,256}\.\w{2,6}\/[\p{L}@:%_.~#?&=\d\w\-\+\/]*
\b[\d\w._%+-]+@[\d\w.-]+\.[\w]{2,6}\b
Phone Number
North America
(\+?\d{1,2})?[-. ]?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4}
Credit Card# (from stackoverflow)
- Amex Card:
^3[47]\d{13}$
- BCGlobal:
^(6541|6556)\d{12}$
- Carte Blanche Card:
^389\d{11}$
- Diners Club Card:
^3(?:0[0-5]|[68]\d)\d{11}$
- Discover Card:
^65[4-9]\d{13}|64[4-9]\d{13}|6011\d{12}|(622(?:12[6-9]|1[3-9]\d|[2-8]\d\d|9[01]\d|92[0-5])\d{10})$
- Insta Payment Card:
^63[7-9]\d{13}$
- JCB Card:
^(?:2131|1800|35\d{3})\d{11}$
- KoreanLocalCard:
^9\d{15}$
- Laser Card:
^(6304|6706|6709|6771)\d{12,15}$
- Maestro Card:
^(5018|5020|5038|6304|6759|6761|6763)\d{8,15}$
- Mastercard:
^(5[1-5]\d{14}|2(22[1-9]\d{12}|2[3-9]\d{13}|[3-6]\d{14}|7[0-1]\d{13}|720\d{12}))$
- Solo Card:
^(6334|6767)\d{12}|(6334|6767)\d{14}|(6334|6767)\d{15}$
- Switch Card:
^(4903|4905|4911|4936|6333|6759)\d{12}|(4903|4905|4911|4936|6333|6759)\d{14}|(4903|4905|4911|4936|6333|6759)\d{15}|564182\d{10}|564182\d{12}|564182\d{13}|633110\d{10}|633110\d{12}|633110\d{13}$
- Union Pay Card:
^(62\d{14,17})$
- Visa Card:
^4\d{12}(?:\d{3})?$
- Visa Master Card:
^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14})$
Remove all non-digits from the string, then use this for Visa, MasterCard, American Express, Diners Club, Discover, and JCB cards:
^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$
As of 2016-10-14 the MasterCard regex here will be insufficient as they will be adding a new range of 222100-272099. I just added the following for our validation (Slagmoth):
^(?:5[1-5][0-9]\d{1}|222[1-9]|2[3-6][0-9]\d{1}|27[01][0-9]|2720)([\ \-]?)\d{4}\1\d{4}\1\d{4}$
Note: Switch hasn't existed since 2002, Laser was withdrawn in 2014, Visa are due to issue 19 digit cards and MasterCard are now issuing in the 2xxxxx ranges.
Ref:
https://stackoverflow.com/questions/9315647/regex-credit-card-number-tests
https://www.regular-expressions.info/creditcard.html
https://web.archive.org/web/20180904130300/https://creditcardjs.com/credit-card-type-detection
SIN#
\d{3}( |-)?\d{3}( |-)?\d{3}
Comments