Ruby on rails Rails在新行的情况下使用正则表达式验证的格式失败
我正在尝试验证允许空白和新行的字母数字输入Ruby on rails Rails在新行的情况下使用正则表达式验证的格式失败,ruby-on-rails,ruby,regex,validation,ruby-on-rails-5,Ruby On Rails,Ruby,Regex,Validation,Ruby On Rails 5,我正在尝试验证允许空白和新行的字母数字输入 validates_format_of :field, with: /^[a-zA-Z0-9 ]*$/, multiline: true, allow_blank: true 在我的表格中,我输入以下信息: 并通过了验证 所需的行为是只接受字母数字文本(允许空白)并接受文本中任意位置的空格/新行。因此,仅当包含您可能使用的任何字母数字字符时,才拒绝输入 /\A[a-zA-Z0-9 ]*(?:\R[a-zA-Z0-9 ]*)*\z/ 请看演示 详
validates_format_of :field, with: /^[a-zA-Z0-9 ]*$/, multiline: true, allow_blank: true
在我的表格中,我输入以下信息:
并通过了验证
所需的行为是只接受字母数字文本(允许空白)并接受文本中任意位置的空格/新行。因此,仅当包含您可能使用的任何字母数字字符时,才拒绝输入
/\A[a-zA-Z0-9 ]*(?:\R[a-zA-Z0-9 ]*)*\z/
请看演示
详细信息
-字符串的开头\A
-0个或更多字母、数字或空格[a-zA-Z0-9]*
-0或更多重复(?:\R[a-zA-Z0-9]*)*
-换行符\R
-0个或更多字母、数字或空格[a-zA-Z0-9]*
-字符串结尾\z
format: { with: /\A[a-zA-Z0-9 ,.;'"+-?!%$]*(?:\R[a-zA-Z0-9 ,.;'"+-?!%$]*)*\z/}
使用
/\A[A-zA-Z0-9\n]*\z/
或/\A[A-zA-Z0-9]*(?:\R[A-zA-Z0-9]*)*\z/
谢谢,但这会拒绝多行输入哪一行?你试过第二个正则表达式了吗?第一个,第二个是完美的,并且符合要求。非常感谢您使用:/\A[A-zA-Z0-9\u0621-\u064A]*(?:\R[A-zA-Z0-9\u0621-\u064A]*)*\z/验证:策略的格式,多行:true,允许空白:true不接受阿拉伯字符,即使在rails控制台中它匹配正确。你知道rails格式是否用不同的代码编码阿拉伯字符串吗?@SelimAlawwa如果你使用\p{L}
:/\a[\p{L}0-9]*(?:\R[\p{L}0-9]*)*\z/
,你可以允许任何字母。也可以使用/\A[\p{L}\p{M}0-9]*(?:\R[\p{L}\p{M}0-9]*)*\z/
。此外,您还可以删除多行:true
。