Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  JavaScript regulaaravaldis šž jaoks märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
raido357
HV veteran

liitunud: 26.09.2002




sõnum 22.01.2009 01:19:13 JavaScript regulaaravaldis šž jaoks vasta tsitaadiga

Tere, kuidas lisada Š Ž -i regulaaravaldisse, avaldis kontrollib kas sisestatud stringis on vastav täht olemas, kui ei on tulemuseks true.

Lihtsalt kirjutades šž avaldisse ei tööta.

Edit: töötab kui hardcoded string on, kui aga lasta input fieldi kontrollida, trükkimise ajal, siis on tulemuseks, false.

--
Raido


viimati muutis raido357 22.01.2009 12:23:10, muudetud 1 kord
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 70
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 22.01.2009 10:55:14 Re: JavaScript regulaaravalis šž jaoks vasta tsitaadiga

raido357 kirjutas:
Tere, kuidas lisada Š Ž -i regulaaravaldisse, avaldis kontrollib kas sisestatud stringis on vastav täht olemas, kui ei on tulemuseks true.

Lihtsalt kirjutades šž avaldisse ei tööta.

Edit: töötab kui hardcoded string on, kui aga lasta input fieldi kontrollida, trükkimise ajal, siis on tulemuseks, false.

--
Raido


Ma nüüd täpselt aru ei saa mida soovid aga ma soovitan ebatavalised tähed koodi ASCII kodeeringus kirjutada. Siit saad täpsemalt teada neid koode: ASCII.

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 22.01.2009 12:33:36 vasta tsitaadiga

Üks idee on see, et sõltub encodingutest. (Arvestades seda et kui ise kirjutad hardcodetuna siis töötab aga inputi põhjal ei tööta)
Mis sul lehe encoding on kus script jookseb ja mis encodingus sul javascripti fail salvestatud on ?
Kui sul leht on UTF-8 kuid javascript on tavalise texteditoriga ISO-8859-1 vms kodeeringus, siis javascript/browser ei oska võrrelda ASCII märki UTF8 märgiga korrektselt.

Text editorist salvesta kindlasti javascript samasse kodeeringusse milles sinu leht on, siis peaks töötama icon_wink.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
raido357
HV veteran

liitunud: 26.09.2002




sõnum 22.01.2009 12:50:01 Re: JavaScript regulaaravalis šž jaoks vasta tsitaadiga

Absona kirjutas:
raido357 kirjutas:
Tere, kuidas lisada Š Ž -i regulaaravaldisse, avaldis kontrollib kas sisestatud stringis on vastav täht olemas, kui ei on tulemuseks true.

Lihtsalt kirjutades šž avaldisse ei tööta.

Edit: töötab kui hardcoded string on, kui aga lasta input fieldi kontrollida, trükkimise ajal, siis on tulemuseks, false.

--
Raido


Ma nüüd täpselt aru ei saa mida soovid aga ma soovitan ebatavalised tähed koodi ASCII kodeeringus kirjutada. Siit saad täpsemalt teada neid koode: ASCII.


Oleks vaja extended ascii sümboleid filtreerida, täpsemalt š ž aga nagu ma olen nüüdseks aru saanud, siis ei ole see võimalik. Isegi lihtlabane string.match("ž") ei saa aru, et ž on sisestatud.

st. "terež".match("ž"); töötab aga kui kusagilt javascripti promptist või input type=text väljalt infot funktsiooni sisse anda, on tulemuseks 0.

Edit: viga oligi encodingutes, jälle natuke targem. thumbs_up.gif
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 70
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 22.01.2009 12:54:25 Re: JavaScript regulaaravalis šž jaoks vasta tsitaadiga

raido357 kirjutas:
Absona kirjutas:
raido357 kirjutas:
Tere, kuidas lisada Š Ž -i regulaaravaldisse, avaldis kontrollib kas sisestatud stringis on vastav täht olemas, kui ei on tulemuseks true.

Lihtsalt kirjutades šž avaldisse ei tööta.

Edit: töötab kui hardcoded string on, kui aga lasta input fieldi kontrollida, trükkimise ajal, siis on tulemuseks, false.

--
Raido


Ma nüüd täpselt aru ei saa mida soovid aga ma soovitan ebatavalised tähed koodi ASCII kodeeringus kirjutada. Siit saad täpsemalt teada neid koode: ASCII.


Oleks vaja extended ascii sümboleid filtreerida, täpsemalt š ž aga nagu ma olen nüüdseks aru saanud, siis ei ole see võimalik. Isegi lihtlabane string.match("ž") ei saa aru, et ž on sisestatud.

st. "terež".match("ž"); töötab aga kui kusagilt javascripti promptist või input type=text väljalt infot funktsiooni sisse anda, on tulemuseks 0.


Proovi siis unicodet:
string.match("\142")

Katseta need variandid läbi
ž = Ž
ž = 0157
ž = Ž
ž = 142
jne..jne..

Neid koode on tohutult palju. Loe lisaks: Link

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 22.01.2009 13:24:02 Re: JavaScript regulaaravalis šž jaoks vasta tsitaadiga

Absona kirjutas:
Proovi siis unicodet:
string.match("\142")


Noh, sellel nüüd küll pole unicode'iga mingit pistmist. See annab sulle ISO-8859-1 kooditabeli sümboli number 142.

Unicode'i sümbolid kirjutatakse kujul \uXXXX. Näiteks:

Ž = "\u017D"
ž = "\u017E"
Š = "\u0160"
š = "\u0161"


Seega regulaaravaldis, mis kontrolliks kas sõna koosneb vaid Ž, ž, Š ja š tähtedest oleks selline:

/^[\u017D\u017E\u0160\u0161]*$/


Üldiselt on heaks praktikaks vältida programmitekstides sümboleid väljaspool ASCII tabelit. Väljaspool ASCII-d sümbolitega võib alati midagi metsa minna.

Erinevate sümbolite unicode'i numbrid leiab kergesti näiteks Wikipeediast - lihtsalt sisestad vastava sümboli otsingusse.

Aga Ž ja Ž on HTML-i spetsiifilised ning JavaScripti need ei puutu.

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 22.01.2009 15:25:15 vasta tsitaadiga

Kõige etem on üritada hoida kõik failid samas kodeeringus ning php (või misiganes asi seal serveri poolel on) poolt ka headeriga vastav encoding öelda browseritele et 100% töötaks.
Siis ei teki probleeme ei regex ega tavalise stringi search/replacega kui vaja erimärke välja filtreerida. Kui sa saad ilusti kirja panna javascriptis textfield.value = textfield.value.replace(/¾/, "z") või misiganes juhul vaja teostada võrdlemist, siis on ¾ ka kuu aja pärast arusaadav ja loetav kui aga \u017d puhul peaks kulutama aega et teada saada mis märgiga täpselt tegu oli.
Ise kasutan igal pool UTF-8 (javascript failid, html, php ja mysql baas) et ei tekiks üleliigseid encodingu jamasid.

Nagu näha siis antud juhul oligi lahenduseks see et javascript tuli salvestada samas kodeeringus nagu muu veebilehtki icon_smile.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  JavaScript regulaaravaldis šž jaoks
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.