Autor Zpráva
gladiator
Profil *
Mohl by mi někdo poradit jak upravit tento regulární výraz, aby našel písmena s diakritikou nejen na začátku řetězce, ale kdekoli v textu?

function kontrolaDiakritiky() {
if(document.form.vstup.value.search(/^[Á-Žá-ž]+./)==0)
alert("Odstraňte diakritiku");
else
preved(form)
}
gladiator
Profil *
Oprava kódu
function kontrolaDiakritiky() {

if(document.form.vstup.value.search(/[Á-Žá-ž]+/)==0) //výraz zjistí zda v textu neni diakritika
alert("Odstraňte diakritiku");
else
preved(form)
}
gladiator
Profil *
Oprava kódu:

function kontrolaDiakritiky() {
if(document.form.vstup.value.search(/[Á-Žá-ž]+/)==0)
alert("Odstraňte diakritiku");
else
preved(form)
}
gladiator
Profil *
to tu není nikdo kdo by mi poradil (omlouvám se že jsem to zaslala dvakrát)
gladiator
Profil *
To tu není nikdo kdo by mi poradil (omlouvám se že jsem předchozí text zaslala dvakrát)?
Aleš Janda
Profil
> document.form.vstup.value.search(/[Á-Žá-ž]+/)==0

Myslím, že tohle nemůže fungovat ani na začátku řetězce, ani na konci. Nikde totiž není definováno, co je mezi Á a Ž nebo á a ž. Resp. definováno to je, ale úplně jinak než potřebujete. Musíte vypsat veškerá diakritická znaménka.

if(document.form.vstup.value.search('[áčďéě...ýžÁČĎÉĚ...ÝŽ]') != -1) ... //-1 to vrátí, když nenalezeno. Jinak vrátí jinou pozici. Proto 0 byla první znak

Místo ... doplňte zbývající písmena :-)
los
Profil *
Ja by som definoval len povolené znaky (napr. /^[\w\s]*$/).

Alebo by som sa spoľahol na to, že prehliadač vie previesť písmená s diakritikou na veľké a malé, vďaka čomu sa dá rozlíšiť písmeno od iného znaku a potom by som zistil, či je písmeno v intervale a-z.
function hasDiacritics(text) {

var lower = text.toLowerCase();
var upper = text.toUpperCase();

for (var i = 0; i < lower.length; ++i)
if ((lower.charAt(i) < "a" || lower.charAt(i) > "z") && lower.charAt(i) != upper.charAt(i))
return true;

return false;
}
gladiator
Profil *
Pro Aleše Jandu: mockrát děkuji.
Toto téma je uzamčeno. Odpověď nelze zaslat.