dinos33 Δημοσ. 25 Σεπτεμβρίου 2010 Δημοσ. 25 Σεπτεμβρίου 2010 Καλησπέρα σε όλους Έχω το εξής πρόβλημα, θέλω ένα bad words filter σε JavaScript για ελληνικές λέξεις. Κουτσά-στραβά και με λίγη βοήθεια απ' το Internet έφτιαξα αυτό: > <script type="text/javascript"> function filterText(sText) { var BadWords = /banana|tree/gi; return sText.replace(BadWords, "juice"); } function showText() { var oInput1 = document.getElementById("txt"); var oInput2 = document.getElementById("txt"); oInput2.value = filterText(oInput1.value); } </script> <textarea id="txt" onKeyUp="showText()"></textarea> Το παραπάνω δουλεύει μια χαρά (αν υποθέσουμε ότι οι λέξεις "banana" και "tree" είναι κακές και η λέξη "juice" η αντικατάστασή τους ). Το πρόβλημα είναι ότι όταν βάζω μια κακιά ελληνική λέξη, δηλαδή ο κώδικας γίνεται έτσι: > <script type="text/javascript"> function filterText(sText) { var BadWords = /θερίζω|δρεπάνι/gi; return sText.replace(BadWords, "juice"); } function showText() { var oInput1 = document.getElementById("txt"); var oInput2 = document.getElementById("txt"); oInput2.value = filterText(oInput1.value); } </script> <textarea id="txt" onKeyUp="showText()"></textarea> Ο κώδικας δε δουλεύει (δοκίμασα να γράψω τις λέξεις με Unicode χαρακτήρες, για παράδειγμα αντί για "π" έβαζα "π", αλλά τότε δε λειτουργούσε όταν ο άλλος έγραφε "π" αλλά όταν έγραφε "π"). Μήπως έχει κανείς καμία ιδέα για το πως μπορώ να το κάνω να δουλεύει και με τα ελληνικά; Υ.Γ. Έβαλα "δρεπάνι" κ.τ.λ. για να μη το δείτε σαν δικαιολογία να βρίσω
dinos33 Δημοσ. 25 Σεπτεμβρίου 2010 Μέλος Δημοσ. 25 Σεπτεμβρίου 2010 Μμμ εμένα δουλευει παντως. Αυτό με το "θερίζω";
bnvdarklord Δημοσ. 25 Σεπτεμβρίου 2010 Δημοσ. 25 Σεπτεμβρίου 2010 Ναι copy paste το εκανα και το εκανε juice το θερίζω. Σε Opera 10.62
dinos33 Δημοσ. 25 Σεπτεμβρίου 2010 Μέλος Δημοσ. 25 Σεπτεμβρίου 2010 Ναι copy paste το εκανα και το εκανε juice το θερίζω. Σε Opera 10.62 Έχεις δίκιο, το δοκίμασα και εγώ με Opera και δουλεύει, ενώ με Safari όχι. Το θέμα είναι ότι θέλω να υπάρχει και για iPhone (Mobile Safari) οπότε πρέπει να βρω μια λύση που να δουλεύει και με Safari
bnvdarklord Δημοσ. 25 Σεπτεμβρίου 2010 Δημοσ. 25 Σεπτεμβρίου 2010 Και σε IE8 δουλευει. Ισως κατι παιζει με safari και κωδικοποιήσεις ελληνικών.
isay Δημοσ. 25 Σεπτεμβρίου 2010 Δημοσ. 25 Σεπτεμβρίου 2010 Το πρόβλημα είναι η κωδικοποίηση αποθήκευσης ελληνικών χαρακτήρων του προγράμματος επεξεργασίας κειμένου. Δοκίμασε να γράψεις τα ελληνικά με το Notepad++
alexandr0s Δημοσ. 26 Σεπτεμβρίου 2010 Δημοσ. 26 Σεπτεμβρίου 2010 Σε γενικές γραμμές δεν ξέρω τι θες να φτιάξεις αλλά το πιο σωστο είναι να φιλτράρεις τις κακές λέξεις server side.
dinos33 Δημοσ. 26 Σεπτεμβρίου 2010 Μέλος Δημοσ. 26 Σεπτεμβρίου 2010 Το πρόβλημα είναι η κωδικοποίηση αποθήκευσης ελληνικών χαρακτήρων του προγράμματος επεξεργασίας κειμένου. Δοκίμασε να γράψεις τα ελληνικά με το Notepad++ Αν το πρόβλημα ήταν η κωδικοποίηση θα δούλευε στον Opera όμως; ---------- Προσθήκη στις 19:33 ---------- Προηγούμενο μήνυμα στις 19:31 ---------- Σε γενικές γραμμές δεν ξέρω τι θες να φτιάξεις αλλά το πιο σωστο είναι να φιλτράρεις τις κακές λέξεις server side. Σωστή η σκέψη σου, αλλά όπως βλέπεις θέλω να γίνεται σε real-time ο έλεγχος (βλέπε onKeyUp) κάτι που δε μπορεί να γίνει με server-side γλώσσα
isay Δημοσ. 26 Σεπτεμβρίου 2010 Δημοσ. 26 Σεπτεμβρίου 2010 Αν το πρόβλημα ήταν η κωδικοποίηση θα δούλευε στον Opera όμως; Το πως «κατανοούνται» οι ελληνικοί χαρακτήρες από τα επιμέρους προγράμματα είναι ένα ... θολό τοπίο. Κάνοντας copy/paste τον κώδικά σου, έπαιξε χωρίς προβλήματα σε firefox, IE και opera. Ο safari και ο Seamonkey είπαν «ΝΟ-ΝΟ». Ανοίγοντας το το htm σε Notepad++ είδα ότι οι ελληνικοί χαρακτήρες δεν ήταν ελληνικοί. Τους έγραψα πάλι χειροκίνητα, το έσωσα και τότε όλοι οι browser είπαν «ΑΞΙΟΣ-ΑΞΙΟΣ». Θα ήθελα να το δοκιμάσω σε linux,mac αλλά βαριόμουνα να ανοίγω VirtualBox (και άλλωστε ειναι δικό σου πρόβλημα να λύσεις με τον καλύτερο τρόπο το πρόβλημα σου)
dinos33 Δημοσ. 26 Σεπτεμβρίου 2010 Μέλος Δημοσ. 26 Σεπτεμβρίου 2010 Παλαιότερα χρησιμοποιούσα και εγώ Notepad++, αλλά τώρα που έφυγα από τα Windows και είμαι σε Mac OS X είναι λίγο μπέρδεμα. Όπως και να 'χει, άνοιξα ένα VM με Windows, έβαλα το Notepad++ και έφτιαξα πάλι το .html, στη συνέχεια το αποθήκευσα, το μετέφερα στο Mac OS X και το άνοιξα πάλι με το Safari... μα το αποτέλεσμα ήταν πάλι το ίδιο, δεν αναγνώριζε τα ελληνικά Καμιά άλλη ιδέα; UPDATE: Κοίταξα το source στον Safari και είδα ότι δε δείχνει ελληνικούς χαρακτήρες και αν κάνω copy-paste τους χαρακτήρες που δείχνει (δηλαδή Î¸ÎµÏίζω) μου το αλλάζει σε juice. ---------- Προσθήκη στις 19:58 ---------- Προηγούμενο μήνυμα στις 19:50 ---------- Το πως «κατανοούνται» οι ελληνικοί χαρακτήρες από τα επιμέρους προγράμματα είναι ένα ... θολό τοπίο. Μήπως πρέπει να αλλάξω το encoding του Notepad++ σε κάποιο άλλο; Εσύ με τι κωδικοποίηση το δοκίμασες σε Safari;
alexandr0s Δημοσ. 26 Σεπτεμβρίου 2010 Δημοσ. 26 Σεπτεμβρίου 2010 [quote name=dinos33;3630723 Σωστή η σκέψη σου' date=' αλλά όπως βλέπεις θέλω να γίνεται σε real-time ο έλεγχος (βλέπε onKeyUp) κάτι που δε μπορεί να γίνει με server-side γλώσσα Μπορείς να κάνεις ένα AJAX call και να τσεκάρεις, αλλά γενικά είναι λάθος σκέψη να ελέγχεις το input πριν το τελειώσει ο χρήστης. Εκτός από αυτό αν κάποιος καταλάβει ότι κάνεις έτσι τον έλεγχο για bad words, κόβει τη Javascript και σου κάνει πλάκα. Φιλικά πάντα
PCharon Δημοσ. 26 Σεπτεμβρίου 2010 Δημοσ. 26 Σεπτεμβρίου 2010 Επί του θέματος, το σκριπτάκι δουλεύει μια χαρά, απλά χρειάζεται όταν γράφεις ένα σωστό (X)HTML έγγραφο πάνω-πάνω, πρώτο απ'όλα να βάζεις το meta tag της κωδικοποίησης που θα χρησιμοποιηθεί για την αποθήκευση του εγγράφου. Δούλεψε σε όλους (G.Chrome, Opera, Firefox, IE, Safari) είτε όταν έβαλα ...<head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-1253" />... και το ΕΣΩΣΑ κιόλας σε Windows-1253, είτε όταν έβαλα ...<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />... και το ΕΣΩΣΑ κιόλας σε UTF-8. Το κάνεις και με το notepad.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.