13 August 2020

Regex Example - Tổng Hợp Các Ví Dụ Thực Tế

 

https://regexr.com

Regex Example

Regex
new RegExp(/^...$/g).test('string')
^[a-zA-Z][a-zA-Z0-9_]{4,}[^_]$
Nhập tối thiểu 4 kí tự 
Chỉ cho a-z or A-Z or 0-9 và 1 dấu gạch dưới
Bắt buộc chữ đầu là ký tự chữ.
Kí tự cuối k được là dấu gạch dưới.
...
/^(?!^[0-9])([a-zA-Z0-9 ]){1,20}$/
Không được bắt đầu bằng ký tự số
Cho phép nhập a-z và A-Z và 0-9
Không cho phép nhập ký tự đặt biệt
Độ dài tối thiểu 1 ký tự, tối đa 20 ký tự
...
/^(?!^[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{1,20}$/
Không được bắt đầu bằng ký tự số.
Phải nhâp ít nhất 1 ký tự a-z.
Phải nhâp ít nhất 1 ký tự A-Z.
Phải nhâp ít nhất 1 ký tự 0-9.
Không cho phép nhập ký tự đặt biệt
Độ dài tối thiểu 1 ký tự, tối đa 20 ký tự
...
/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/
Kiểm tra email
/[0-9]/g
Chỉ cho nhập số

/[^0-9]/g
Không cho nhập số

VD: ứng dụng bài toán input number chặn user nhập chữ cái
var a = '444t';
console.log(a.replace(/[^0-9]*/g, ''))
output: 444
[USERNAME]
/^(?!^[0-9])([a-zA-Z0-9 ])[^\u0E00-\u0E7F]{1,50}$/
Có thể được nhập bằng ký tự. Tiếng Anh, chữ thường và chữ thường (AZ, az)
Số (0-9)
Các ký tự đặc biệt 
Không nên đặt bằng tiếng Thái
Nó có phân biệt chữ hoa chữ thường
Không được ít hơn 1 ký tự và không quá 50 ký tự
Không được bắt đầu bằng một số.
[PASSWORD]
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])[A-Za-z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{8,}$/
Phải có chữ hoa tiếng Anh (AZ)
Phải có chữ cái viết thường tiếng Anh (az)
Phải có số (0-9)
Phải có các ký tự đặc biệt Phải dài ít nhất 8 ký tự
[REQUIRE]
/^\s*$/
ex: /^\s*$/.test('') => true
Không được để trống!

[REQUIRE number]
/^(?!^[1-9])[0-9]{10,}$/
/^(?=^[0])[0-9]{10,}$/
Phải bắt đầu bằng số 0
ex: /^(?!^[1-9])[0-9]{10,}$/.test("0123456789") => true
ex: /^(?=^[0])[0-9]{10,}$/.test("01123456789") => true
[Kiểm tra chuỗi]
/(\#\_[a-zA-Z]{0,1}\_[^\#\_]{0,}\_\#)/g
Phải có ký tự đầu cuối #_ ... _#
Đoạn 1 cho nhập chữ tiếng anh hoa thường 1 ký tự
Đoạn 2 không được chứa #_
ex: kiem tra dong nay #_T_ngược dòng_# xem co dung khong #_T_xuôi dòng_#
[Kiểm tra URI image]
/(https?:\/\/.*\.(?:png|jpg))/i
[Kiểu tra dãy ký tự - muốn pass qua một đoạn nào đó dùng .*?]
/(\#\_\(.*?\)\/\(\(.*?\)[+x-]\(.*?\)\)\_\#)/g
ex: #_(a+#_0/c_#)/((#_a/c_#+#_c/d_#)+(#_a/c_#+#_c/d_#))_#
.*? => a+#_0/c_#
.*? => #_a/c_#+#_c/d_#
.*? => #_a/c_#+#_c/d_#
[Kiểm tra chuỗi url trang web]
^(?!^[<>\\'"*])(?=.*[\w])([\w\d!@#$%^&()_+\-=\[\]{};:|,\/?.]){5,22}$
Chỉ chứa các ký tự Latinh
Chứa từ 5-20 ký tự
Chứa ít nhất một chữ cái
Không được chứa ký tự đặc biệt <>\'"*
ex: kiểm tra chuỗi này: facebook.com
[Kiểm tra URL loại bỏ params phía sau]
(http|https)?:\/\/([a-zA-Z0-9.-]+)\/
(\S+) => là chứa các chữ cái và ký tự đặc biệt (Không dùng được trong ví dụ này)
([a-zA-Z0-9.-]+) => Dấu + cho phép nối tiếp điều kiện tiếp
ex: https://regexr.com/demo/demo/demo?demo=123
kết quả: https://regexr.com/
[Loại bỏ chuỗi bên trong dấu ngoặc tròn ()]
/[()][(\w\d.)]+/g
ex: 'ntt.linh (ntt.linh) ,vtp.hoai (vtp.hoai)'
kết quả: ['ntt.linh', 'vtp.hoai']
[Thêm kí tự vào mỗi 2 số kết hợp replaceAll]
/[0-9]{2}/g
"991231".replaceAll(/[0-9]{2}/g,"/")
kết quả 1: ///
"991231".replaceAll(/[0-9]{2}/g, (a, b) => b === 4 ? a : b === 0 ? "19" + a + "-" : a + "-") 
kết quả 2: "1999/12/31/"
[Giữ lại + xoá đi ký tự được chỉ định kết hơp replace]

"price 1000¥".replace(/[^a-zA-Z0-9]|[¥¥]/g, ""); // về đầu là giữ lại, vế sau là xoá bỏ
kết quả: price1000
Chúng được sử dụng để tìm một loạt các ký tự.

[...]: Any one character between the brackets.
[^..]: khớp với bất kỳ chuỗi nào không nằm trong ngoặc
[0-9]: khớp với 0-9
[a-z]: khớp với a-z
[A-Z]: khớp với A-Z
[a-Z]: lỗi không được viết kiểu này

Đây là những ký tự có ý nghĩa đặc biệt

.: a single character
\s: a whitespace character (space, tab, newline)
\S: non-whitespace character (chứa ký tự a-zA-Z0-9 và các ký tự đặc biệt)
\d: a digit (chứa 0-9)
\D: a non-digit (Không được chứa 0-9)
\w: a word character (chứa các ký tự a-zA-Z0-9_)
\W: a non-word character (Không được chứa a-zA-Z0-9)
[\b]: a literal backspace (special case).
[aeiou]: khớp với các ký tự aeiou
[^aeiou]: khớp vời tất cả các ký tự ngoài aeiou
(foo|bar|baz): khớp với foo hoặc bar hoặc baz

Chúng rất hữu ích để xác định các đại lượng

p+: Khớp với bất kỳ chỗi nào chứa p
p*: Ký tự "*" được gọi là ký tự đại diện cho 0 hoặc nhiều ký tự bất kỳ.
p?: Nó khớp với bất kỳ chuỗi nào chứa nhiều nhất một p.
p{N}: p{2} khớp với 2 ký tự p
p{2,3}: khớp với 2 hoặc 3 ký tự p
p{2, }: khớp với 2 ký tự p trở đi
p$: khớp với p ở cuối cùng văn bản
^p: khớp với p ở đầu tiên văn bản



0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang