如何只允许特殊字符作为输入?

时间:2015-03-16 10:59:17

标签: ruby

如何检查输入的输入是否只有特殊字符?我尝试了以下方法,但它不起作用:

/^[\p{L}\s\p{N}._@?¿!¡€-]+$/

4 个答案:

答案 0 :(得分:2)

"!@#$%^&()!@" !~ /\w/  # => true
"!a@#$%^&()!@" !~ /\w/ # => false

答案 1 :(得分:1)

这个怎么样?:

/^[^A-Za-z0-9]+$/

模式从字符串的开头到结尾匹配,并允许一个或多个不是字母或数字的字符。

答案 2 :(得分:0)

这将匹配仅包含非单词字符的任何内容(除字母数字之外的任何字符)

/^[\W]+$/

//编辑它也不匹配_

答案 3 :(得分:0)

要检查输入是否仅包含任何字母中的数字和字母,可以使用\p{Alnum} matcher

▶ '¡Hello!' !~ /^\p{Alnum}+$/
#=> false
▶ 'Hello' !~ /^\p{Alnum}+$/
#=> true
▶ '¿Привет?' !~ /^\p{Alnum}+$/
#=> false
▶ 'Привет' !~ /^\p{Alnum}+$/
#=> true

那说,要检查非字母数字:

▶ not '!@#$%^&()!@' !~ /^[^\p{Alnum}]+$/
#=> true
▶ not 'a!@#$%^&()!@' !~ /^[^\p{Alnum}]+$/
#=> false