Satır başına karakter sayısını sınırlamak için Javascript Regex
Bir html metin alanında satır başına karakter miktarını sınırlamak için bir JS Normal İfadesi oluşturmaya çalışıyorum. İdeal olarak, form doğrulama motorumuz için kullanımı daha kolay olduğundan Javascript Regex olarak kullanmayı tercih ederim.
Bir dizenin satır başına 10 karakter ve en fazla 3 satır olduğunu doğrulayan bir normal ifade oluşturmak istiyorum
Buradaki fikir, aşağıdaki gibi dizeleri doğrulamak olacaktır:
01234567890
a
b
Buradaki ilk satırda 11 karakter olduğundan tüm dizge reddedilmelidir /
a
b
c
d
Bu metin 4 satırdan oluştuğu için reddedilmesi gerekir.
Aşağıdaki normal ifadeyi denedim ancak beklendiği gibi çalışmıyor:
^((?:\n)?[^\n]{0,10}){0,3}$
neyi yanlış yaptığıma dair herhangi bir ipucu?
Yanıtlar
Kullanabilirsiniz
^.{0,10}(?:\r?\n.{0,10}){0,2}$
Normal ifade demosuna bakın
Detaylar
^- dizenin başlangıcı.{0,10}- satır sonu karakterleri dışında sıfır ila on karakter(?:\r?\n.{0,10}){0,2}- sıfır, bir veya iki kez\r?\n- CRLF veya LF satır sonu.{0,10}- satır sonu karakterleri dışında sıfır ila on karakter
$- dizenin sonu.
JavaScript:
const valid_rx = /^.{0,10}(?:\r?\n.{0,10}){0,2}$/;
const testFunc = () => {
if(!valid_rx.test(document.all.mytextarea.value))
{
console.log("Please use correct format.");
return false;
}
}
<textarea id="mytextarea" cols="50" rows="10">a
b
c
</textarea>
<button onclick="testFunc()">Click Me</button>