Nedir Bu Regex diyorsanız bu yazı tam size göre. Regex (Regular Expressions) modern yazılım dillerinin neredeyse hepsine bulunan, kullanıcıdan alınan veya sisteme işli karakterleri (metin, rakam vb) vermiş olduğunuz katar kurallarına göre işleyip filtreden geçirip önünüze sunan sistem.
Şimdi üst paragraf kafanızı karıştırmış olabilir ancak hemen endişelenmeyin. Basit bir örnekle bu soru işaretlerini kafanızdan kaldıracağım.

Görselde gördüğünüz gibi bir formum var. Ancak benim buradan bir isteğim var. Sabit kıymet no yazan field’a istediğim karakterlerin girilmesini istiyorum.
<div>
<mat-form-field class="sabitkıymetNo">
<input matInput placeholder="Sabit Kıymet No" formControlName="fixedAssetNumber" />
</mat-form-field>
</div>
Formun Sabit kiymet no input’u bu şekilde. FormControlName ile bu input’u kontrol etmekteyim.
export function ValidateFixedAssetNumber(control: AbstractControl) :any {
let val=control.value;
let regex=/^(250)[0-9]+$|^(253)[0-9]+$/;
return regex.test(val)? null:{invalidFAS:true};
}
Evet şimdi geldik asıl Regex fonksiyonumuza. Yukarıda yapmış olduğum işlem basit anlatılmak gerekirse şu şekilde. Kontrol edilen input’a sadece 250 ve 253 ile başlayan, devamında ise sadece rakamların girilmesini istiyorum. Aslında bu istediğim şartları sağlayan kısım;
^(250)[0-9]+$|^(253)[0-9]+$
burası. “^ ” bu işaret “başlayan” demek. Yani “250″ 250 ile başlayan ve “0-9” devamında ise sadece rakamların girilmesini istedim. “|” karakteri ise birden fazla şartı yan yana getirmek için var. Diğer tarafta aynı işlemin 253 ile başlayanını yap diyor.
Fonksiyonumu yazdıktan sonra sıra test etmeye gelirse.

Gördüğünüz gibi, istediğim şartı sağlamadı çünkü 253 veya 250 ile başlamadı ve işleme bu alan düzeltilene kadar devam ettirmiyorum.
Regex’i daha fazla anlamak ve alıştırma yapmak için altta vermiş olduğum siteyi kullanarak inceleyebilirsiniz. Kendisi online bir Regex Editor.
Link: https://regexr.com/
Yazımı okuduğunu için teşekkürler. Lütfen aklınıza soru takılırsa alt tarafa yazmaya çekinmeyin.