Regex Javascript untuk Membatasi jumlah karakter per baris
Saya mencoba membuat Ekspresi Reguler JS untuk membatasi jumlah karakter per baris di area teks html. Idealnya saya lebih suka memilikinya sebagai Javascript Regex karena lebih mudah digunakan untuk mesin validasi formulir kami.
Saya ingin membuat ekspresi reguler yang memvalidasi bahwa sebuah string memiliki 10 karakter per baris, dan maksimal 3 baris
Idenya adalah untuk memvalidasi string seperti berikut:
01234567890
a
b
Baris pertama di sini memiliki 11 karakter jadi seluruh string harus ditolak /
a
b
c
d
Teks ini memiliki 4 baris jadi harus ditolak.
Saya sudah mencoba dengan regex berikut tetapi tidak berfungsi seperti yang diharapkan:
^((?:\n)?[^\n]{0,10}){0,3}$
ada petunjuk tentang apa yang saya lakukan salah?
Jawaban
Kamu bisa memakai
^.{0,10}(?:\r?\n.{0,10}){0,2}$
Lihat demo regex
Detail
^- awal dari string.{0,10}- nol hingga sepuluh karakter selain karakter baris baru(?:\r?\n.{0,10}){0,2}- nol, satu atau dua kemunculan\r?\n- Akhiran garis CRLF atau LF.{0,10}- nol hingga sepuluh karakter selain karakter baris baru
$- akhir string.
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>