2 ruby whitespace ruby-on-rails strip
我正在使用Ruby on Rails 4.2.7。我无法从变量中删除空白。我不知道它是哪种空白。有没有万无一失的剥离方法?当我从某个变量剪切并粘贴时,我无法剥离空格,但是,当我键入空格时,一切都很好。请参阅下面的控制台:
2.3.0 :004 > test = " 21"
=> " 21"
2.3.0 :005 > test.strip
=> " 21"
Run Code Online (Sandbox Code Playgroud)
我已经从其他来源剪切并粘贴了空白,并且没有剥离空白。有什么办法可以对变量使用某种万无一失的剥离方法吗?
您可能具有非ASCII Unicode空白字符,最有可能是0x00A0:
> test = "\u00A021"
=> " 21"
> test.strip
=> " 21"
Run Code Online (Sandbox Code Playgroud)
并且String#strip仅(当前)知道ASCII空格:
跳闸 ?new_str
[...]空格定义为以下任何字符:null,水平制表符,换行符,垂直制表符,换页符,回车符,空格。
您可以通过String#gsub和Spacecharacter属性手动完成此操作:
> test = "\u00A0 21 \t\u00a0"
=> " 21 \t "
> test.gsub(/\A\p{Space}+|\p{Space}+\z/, '')
=> "21"
Run Code Online (Sandbox Code Playgroud)