gpt4 book ai didi

Ruby 空格字符不等于空格字符

转载 作者:行者123 更新时间:2023-12-05 08:32:15 25 4
gpt4 key购买 nike

在下面的语句中,其中一个空格来自用户的输入(我从远程 Rails 控制台(一个 ActiveRecord 字段)复制用户的字符,并粘贴它),另一个来 self 的键盘。语句返回 false:

" " == " " # => false
" ".include? " " # => false

关于为什么/如何发生这种情况的任何想法?

最佳答案

要验证用户输入的空白,不应使用== 和/或include? 助手。应该使用现代正则表达式,匹配空格

仅供引用:UTF-8 规范中有十多个空白字符,包括但不限于:

spaces = {
space_medium_mathematical_space: " ",
spaces_em_quad: " ",
spaces_em_space: " ",
spaces_en_quad: " ",
spaces_en_space: " ",
spaces_figure_space: " ",
spaces_four_per_em_space: " ",
spaces_hair_space: " ",
spaces_punctuation_space: " ",
spaces_six_per_em_space: " ",
spaces_thin_space: " ",
spaces_three_per_em_space: " "
}

要匹配它们,可以使用 \p{Space}匹配器。

spaces.values.map { |s| s == ' ' }
#⇒ [false, false, false, false, false, false,
# false, false, false, false, false, false]

但是:

spaces.values.map(&/\A\p{Space}*\z/.method(:match?))
#⇒ [true, true, true, true, true, true,
# true, true, true, true, true, true]

关于Ruby 空格字符不等于空格字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52088519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com