2016-04-06 39 views
0

başlamak için açısal textarea ayarlamak için bir textarea olarak tanımlamış:nasıl sadece belirli kelimeler

<textarea class="lined" rows="30" name="script_text" ng-model="textContent" placeholder="Enter Script Here" style="width:100%"></textarea> 

sadece kelimelerin belirli bir listeyle başlayın o metin alanına her hattı olması mümkün mü?

THIS (doesnt matter what comes after) 
IS (doesnt matter what comes after) 
ALLOWED (doesnt matter what comes after) 

Ama kullanıcı tipleri ise:

Örneğin, kullanıcı sadece girebilir

This is a sentence 
next line 
and another line 

izin verilmez Yani. Mümkün mü?

+0

gerçekten korkunç bir kullanıcı deneyimi – JanR

+0

gibi geliyor bu. Yorumunuzun amacı nedir? – machinebit

+0

Belirli bir kullanım durumu için bile, belirli cümlelerin neden işlediğini ve neden yapılmadığını kullanıcıya nasıl açıklıyorsunuz? – JanR

cevap

0

Tamam. İşte saf bir Javascript çözümü. Açısal size $ scope.yourmodel.val() vb ile yazabilir

bu HTML ile test

:

document.getElementById('text').value 

Sonuç:

Ben bu değeri takılı

<textarea id="text" class="lined" rows="30" name="script_text" ng-model="textContent" placeholder="Enter Script Here" style="width:100%"></textarea> 

"Bla das ist ein Metin Nochmal blaa" İlk

: Ben her satırı almak için bir regex var. En üste gitmelisin.

document.getElementById('text').value.match('(.*)(?=(\n.*){1}$)') 

sonuç: Sıfır İlk satır, benim örnekte, son satır ve biridir

["Bla das ist ein Text", "Bla das ist ein Text", " 
Nochmal blaa"] 

iyi: Artık ne istersen döngü, foreach, bir yazabilirsiniz. Sayımı ve cnt'i normal ifadenizde kullanıyorsunuz. Eğer bir null varsa, bittin.

document.getElementById('text').value.match('(.*)(?=(\n.*){2}$)') 

İkinci boş: ben için aldığım Kelimelerin tarafından her satır metin bölün.

document.getElementById('text').value.match('(.*)(?=(\n.*){1}$)')[0].split(' ')[0] 

Sonuç:

0

Eğer Açısal kullanıyorsanız "Bla" ilk değer kelimedir. ng-pattern directive'dan harika bir şekilde faydalanabilirsiniz.

Bu deneyebilirsiniz:

<textarea class="lined" rows="30" name="script_text" ng-model="textContent" placeholder="Enter Script Here" style="width:100%" ng pattern="/^(THIS|IS|ALLOWED) .*/"></textarea > 

İşte onun belirli bir kullanım durumu için, bir fiddle

İlgili konular