Ho un'espressione regolare JavaScript che fondamentalmente trova le parole di due lettere. Il problema sembra essere che interpreta i caratteri accentati come limiti di parole. In effetti, sembra cheCome posso creare un'espressione regolare che tenga conto dei caratteri accentati?
Un limite di parola ("\ b") è un punto tra due personaggi che ha un "\ w" su un lato di essa e un "\ W" sul altro lato (in qualsiasi ordine), contando i caratteri immaginari su l'inizio e la fine della stringa come corrispondente a "\ W". AS3 RegExp to match words with boundry type characters in them
E poiché
\ w corrisponde a qualsiasi alfanumerico caratteri (caratteri di parola) tra cui sottolineatura (abbreviazione di [a-zA-Z0-9_]). \ W corrisponde a qualsiasi non-parola caratteri (abbreviazione di [^ a-zA-Z0-9_]) http://www.javascriptkit.com/javatutors/redev2.shtml
caratteri accentati, ovviamente, non sono presi in considerazione. Questo diventa un problema con parole come Montréal
. Se lo é
è considerato un limite di parole, quindi al
è una parola di due lettere. Ho provato a creare la mia definizione di un limite di parole che consentirebbe caratteri accentati, ma visto che un confine di parole non è nemmeno un personaggio, non so esattamente come trovarlo.
Qualsiasi Aiuto?
Ecco il codice JavaScript in questione, che cerca e trova userInput
due lettere parole utilizzando l'espressione regolare re_state
:
var re_state = new RegExp("\\b([a-z]{2})[,]?\\b", "mi");
var match_state = re_state.exec(userInput);
document.getElementById("state").value = (match_state)?match_state[1]:"";
che non cambia nulla ... – Shawn
Sì, l'attributo type non è nemmeno in HTML5 come esso isn 'supportato dai browser, è un errore che qualcuno ha fatto interpretando le specifiche. Il meta tag charset funziona, ma il charset nei collegamenti non è una cosa reale. –
@Rich Bradshaw: Ho nella mia sezione principale. È questo che vuoi dire? – Shawn