Tengo una expresión regular:
/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġg̶̃čḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶]+/gm
que funciona muy bien, excepto que hay un carácter que no puedo incluir (o que no parece funcionar como se esperaba cuando se incluye). El carácter es (dentro) del último dígito de la expresión regular:
ś̶
// [hace el cruce (no es fácilmente visible en algunas fuentes), en Unicode es 'COMBINING LONG STROKE OVERLAY' (U+0336)
]
mi expresión regular está capturando el carácter pero dividiendo cualquier palabra que lo contenga:
"mokk̇ś̶ḣô".match(/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġčḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶g̶̃]+/gm) // == ['mokk', 'ś̶ḣô']
Escuché acerca de Unicode Property Escapes usando \p{UnicodePropertyValue}
con una marca u
. ¿Sería útil aquí?
No parece estar relacionado con ś char. Como dijiste tú mismo, está siendo capturado. El motivo de la división es la falta de otro carácter: k̇.
console.log("mokk̇ś̶ḣô".match(/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġčḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶g̶̃]+/gm) ) console.log("mokk̇ś̶ḣô".match(/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġčḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶k̇g̶̃]+/gm) )