Autor Zpráva
IdemeNaHavaj
Profil
Ahoj,
keď mám dva texty:
"Ne, text je dlouhy"
"Fero neprišel domu"

tak ako môžem upraviť .indexOf("ne") aby mi hodil v druhej vete, na slovo "neprišel" -1? Potrebujem, aby sa hladalo presne "ne", aby to nebralo "ne" aj uprostred slova. Dá sa to?
Dakujem za odpovede
Keeehi
Profil
Na to ti vyhledávání podřetězců nebude stačit.

Použij regulární výrazy.
developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions
_es
Profil
IdemeNaHavaj:
To musíš použiť regulárne výrazy. Mohlo by fungovať:
s.search(/(^|\s)ne($|\s|[,;:.?!])/)
Možno ešte nejako upraviť hranice slova... Skús pohľadať, ako to riešili iní s inou ako anglickou abecedou.
IdemeNaHavaj
Profil
No ja sa tím regularnym vyrazom nerozumiem, v mojich očiach to vyzerá ako čínska dedina.. ak by som chcel zmeniť vyhladávanie napr. na slovo "auto" tak stačí prepšsať s.search(/(^|\s)ne($|\s|[,;:.?!])/))/) za s.search(/(^|\s)auto($|\s|[,;:.?!])/))/)
lionel messi
Profil
IdemeNaHavaj:
No ja sa tím regularnym vyrazom nerozumiem, v mojich očiach to vyzerá ako čínska dedina..
Základy regulárnych výrazov v češtine (neúplné)

Vyčerpávajúci popis regulárov v angličtine (kompletný prehľad)

ak by som chcel zmeniť vyhladávanie napr. na slovo "auto" tak stačí prepšsať s.search(/(^|\s)ne($|\s|[,;:.?!])/))/) za s.search(/(^|\s)auto($|\s|[,;:.?!])/))/)

Áno.
Keeehi
Profil
IdemeNaHavaj:
Ten regulár se dá velmi jednoduše zapsat jako s.search(/\bne\b/);. To \b znamená hranici slova což je přesně, to co chceš. Ovšem problém je, že česká písmena s diakritikou nejsou považována za písmena a proto si regex myslí, že je tam konec slova, proto nex správně neprojde ale než projde. Dalo by se to vyřešit zapnutím unicode /\bne\b/u, ovšem problém je, že podle toho co jsem našel to bude fungovat až v novém javascriptu. Třeba PHP a jiné jazyky to ale umí.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0