Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Muszę przeszukać wpisany ciąg i jeżeli znajdę odpowiedni wyraz, wstawić kod tego wyrazu do pola tekstowego, jak?
miedzna
post 27.10.2009, 16:07:22
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Mam 2 pola tekstowe, w pierwszym wpisuję ciąg typu "Ala ma kota" i jeżeli ciąg zawiera wyraz "kot", to w drugim polu tekstowym wstawiam literkę K. Takich przypadków (czyli wyrazów i kodów) jest kilkadziesiąt. Nie mogę wpaść na pomysł jak to ugryźć. Jakiś array, explode, in_array, ale tego chyba nie ma w JS?

Macie pomysł?
Go to the top of the page
+Quote Post
shaaaadow
post 28.10.2009, 01:08:19
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.01.2008
Skąd: Gniezno

Ostrzeżenie: (0%)
-----


Lepiej znam PHP niż JS ale tu masz wersje strpos z PHP`a przerobioną do JS...

[JAVASCRIPT] pobierz, plaintext
  1. function strpos (tekst, szukany, offset) {
  2. var i = (tekst+'').indexOf(szukany, (offset ? offset : 0));
  3. return i === -1 ? false : i;
  4. }
  5.  
  6. var wynik;
  7. wynik = strpos('Ala ma kota ', 'kota', 0);
[JAVASCRIPT] pobierz, plaintext


zwroci false jak nie bedzie ciagu albo pozycje jesli bedzie.. offset chyba wiesz do czego jest..
Go to the top of the page
+Quote Post
ahead
post 28.10.2009, 08:58:57
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 2
Dołączył: 13.08.2008

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. var words = ['kot'];
  2. var cods = ['k'];
  3. for(var i = 0;i< words.length;i++){
  4. if( "Ala ma kota".indexOf(words[i] != -1 ){
  5. document.getElementById('yourInput').value = cods[i];
  6. return true;
  7. }
  8. }
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
miedzna
post 28.10.2009, 14:46:10
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Opierając się o Twój kod napisałem coś takiego:

  1. function wstawKod(){
  2.  
  3. var words = ['kot'];
  4.  
  5. var cods = ['k'];
  6.  
  7. var ciag = document.getElementById("nazwa").value;
  8.  
  9. for(var i = 0; i < words.length; i++){
  10.  
  11. if(ciag.indexOf(words[i] != -1)){
  12.  
  13. document.getElementById('kod').value = cods[i];
  14.  
  15. }
  16.  
  17. }
  18. }


  1. <input type="text" id="nazwa" onchange="wstawKod();">
  2. <input type="text" id="kod">


I cokolwiek bym nie wpisał, zawsze wstawia literkę k

Cytat(shaaaadow @ 28.10.2009, 02:08:19 ) *
Lepiej znam PHP niż JS ale tu masz wersje strpos z PHP`a przerobioną do JS...

Kod
function strpos (tekst, szukany, offset) {
    var i = (tekst+'').indexOf(szukany, (offset ? offset : 0));
    return i === -1 ? false : i;
}

var wynik;
wynik = strpos('Ala ma kota ', 'kota', 0);


zwroci false jak nie bedzie ciagu albo pozycje jesli bedzie.. offset chyba wiesz do czego jest..


Jakoś nie mogę połapać się w Twoim kodzie smile.gif
Go to the top of the page
+Quote Post
Ociu
post 28.10.2009, 15:10:22
Post #5





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Panowie, na forum mamy kolorowanie składni dla javascript. Proszę zacząć go używać.
Go to the top of the page
+Quote Post
ahead
post 29.10.2009, 09:40:49
Post #6





Grupa: Zarejestrowani
Postów: 33
Pomógł: 2
Dołączył: 13.08.2008

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. function wstawKod(e){
  2.  
  3. var words = ['kot'];
  4.  
  5. var cods = ['k'];
  6.  
  7. var ciag = document.getElementById("nazwa").value;
  8.  
  9. for(var i = 0; i < words.length; i++){
  10.  
  11. if(ciag.indexOf(words[i]) != -1){
  12.  
  13. document.getElementById('kod').value = cods[i];
  14.  
  15. }
  16.  
  17. }
  18. }
[JAVASCRIPT] pobierz, plaintext


literówka
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 08:24