Cómo comprobar si una cadena contiene caracteres especiales en ruby. Si obtengo una expresión regular también está bien.Cómo comprobar que la cadena contiene caracteres especiales en ruby
Por favor, hágamelo saber
Cómo comprobar si una cadena contiene caracteres especiales en ruby. Si obtengo una expresión regular también está bien.Cómo comprobar que la cadena contiene caracteres especiales en ruby
Por favor, hágamelo saber
special = "?<>',?[]}{=-)(*&^%$#`~{}"
regex = /[#{special.gsub(/./){|char| "\\#{char}"}}]/
A continuación, puede utilizar la expresión regular para comprobar si una cadena contiene el carácter especial:
if some_string =~ regex
Esto parece un poco complicada: lo que está pasando en este bit
special.gsub(/./){|char| "\\#{char}"
es convertir esto
"?<>',?[]}{=-)(*&^%$#`~{}"
en esto:
"\\?\\<\\>\\'\\,\\?\\[\\]\\}\\{\\=\\-\\)\\(\\*\\&\\^\\%\\$\\#\\`\\~\\{\\}"
¿Qué es todos los personajes en especial, escapó con un \
(que a su vez se escaparon en la cadena, es decir, no \\
\
). Esto se utiliza para construir una expresión regular como esto:
/[<every character in special, escaped>]/
Uso str.include?
.
Devuelve true
si str
contiene la cadena o el carácter dados.
"hello".include? "lo" #=> true
"hello".include? "ol" #=> false
"hello".include? ?h #=> true
"foobar".include?('a')
# => true
Por qué no usar inversa de [:alnum:]
POSIX.
Aquí [:alnum:]
incluye todos los 0-9
, a-z
, A-Z
.
Más información here.
"Hel @ lo" .index (/ [^ [: alnum:]] /) Esto devolverá nulo en caso de que no tenga ningún carácter especial en su cadena y devolverá el índice de su primer personaje especial de lo contrario – Akshat
"[email protected]".index(/[^[:alnum:]]/)
Esto devolverá nil
en caso de que no tiene ningún carácter especial y, por tanto, forma eaiest creo.
¿Qué tal este comando en Ruby 2.0.0 y superior?
def check_for_a_special_charachter(string)
/\W/ === string
end
Por lo tanto, con:
!"[email protected]"[/\W/].nil? => True
!"Hello"[/\W/].nil? => False
Qué caracteres no se tiene en cuenta 'especial'? – Ant
Además, debe aceptar las respuestas a sus preguntas si las ha encontrado útiles (Vea que hay un tic) y también use votos ascendentes. Le ayudará a obtener más respuestas – Rishabh
Estos son todos los caracteres especiales? <> ',? []} {= -) (* & ^% $ # '~ {} –