如何在 ruby​​ 中使用 utf8 的正则表达式

2023-11-26

在 RoR 中,如何使用 utf8 代码验证发布表单的中文或日文单词。

在GBK代码中,它使用[\u4e00-\u9fa5]+来验证中文单词。 在 Php 中,它使用 /^[\x{4e00}-\x{9fa5}]+$/u 来表示 utf-8 页面。


Ruby 1.8 对 UTF-8 字符串的支持很差。您需要在正则表达式中单独写入字节,而不是完整的代码:

>> "acentuação".scan(/\xC3\xA7/)
=> ["ç"]    

为了匹配您指定的范围,表达式将变得有点复杂:

/([\x4E-\x9E][\x00-\xFF])|(\x9F[\x00-\xA5])/  # (untested)

这将在 Ruby 1.9 中得到改进, 尽管。

Edit:如注释中所述,unicode 字符 \u4E00-\u9FA5 仅映射到 UTF16-BE 编码中的上述表达式。 UTF8 编码可能不同。因此,您需要仔细分析映射,看看是否可以为 Ruby 1.8 找到一个字节匹配表达式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ruby​​ 中使用 utf8 的正则表达式 的相关文章

随机推荐

  • Android 锁屏对话框[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在设计一个关于闹钟的应用程序 即使手机被锁定 如何显示对话框 我不想让手机解锁 我只是想让它在手机上显示一些文字 用户需要自行解锁手机才能了解更多信息 没有必要使用对话框 我想要
  • 猫鼬子文档排序

    我有一个包含子文档的文章架构comments其中包含我对这篇文章的所有评论 我想要做的是按 id 选择一篇文章 填充其作者字段以及评论中的作者字段 然后按日期对评论子文档进行排序 文章架构 var articleSchema new Sch
  • 组合或变基任意大量的提交

    就说我本地的git log shows 739b36d3a314483a2d4a14268612cd955c6af9fb a c42fff47a257b72ab3fabaa0bcc2be9cd50d5c89 x c4149ba120b309
  • 动态媒体查询

    我目前正在使用 js jq 调整大小事件 当水平菜单 宽度可变 对于屏幕来说太大时 将 css 规则应用于该菜单 然而 在应用新规则之前 菜单会短暂换行 理想情况下 我想测量菜单宽度并更改媒体查询的断点 media screen and m
  • 内部类访问外部类方法,方法名相同

    我有一个班级和一个内部班级 01 public class A 02 void test 03 public class B 04 void test 05 test 06 07 08 好的 在第05行id喜欢访问A类的方法test 但我陷
  • Mapstruct 映射:如果所有源参数属性均为 null,则返回 null 对象

    如果 Mapping source 中引用的所有属性均为 null 我希望生成的 mapstruct 映射方法返回 null 例如 我有以下映射 Mappings Mapping target id source tagRecord tag
  • 从代码隐藏 C# 中的输入 html 获取值

    我做了一些研究 发现如何从输入 html 文本框中读取值 这对我来说效果很好 但立刻就不起作用了 这是我的代码 它输入 html 返回 null
  • 使用 AppleScript 打开新的 Finder 窗口

    如何在 AppleScript 中打开 Finder 的新窗口 我正在使用 if else 语句来打开一个窗口 我尝试了一个Osascript命令 但它给了我一个语法错误 代码如下 if the button returned of the
  • Git 推送错误预接收挂钩被拒绝

    我已在虚拟机上运行 gitlabhq Rails 服务器 遵循本教程中的 1 6 个步骤https github com gitlabhq gitlab recipes blob master install centos README m
  • 如何将base64格式的图片上传到服务器上

    我有一个问题 我正在服务器上上传图像 但事实并非如此 我已经将图像转换为base64并通过json but json由于这个原因 没有正确关闭 我收到错误 postimage 变量上的错误 ID 在这个变量中 key encode 这是js
  • 如何在 Mac OS X 10.6 上安装 PyQt

    我对 Mac OS X 还很陌生 当我在安装 python 3 1 Qt 4 6 2 和 SIP 4 10 1 后尝试在 Mac Os X 上安装 PyQt 时 在执行 python3 configure py 命令时遇到以下错误 Dete
  • jQuery UI 网站上的垂直“选项卡”组件

    jQuery UI 具有一个漂亮的 垂直选项卡 小部件来在章节之间切换在其自己的网站上 有谁知道这是否建立在某种标准小部件上 你would期望 UI 自己的 选项卡 组件用于此目的 但没有骰子 或者它是否是定制的 粗略地浏览一下代码让我怀疑
  • 使用 dplyr,如何通过管道或链接到plot()?

    我是 dplyr 包的新手 并尝试将其用于我的可视化作业 我可以将我的数据通过管道传输到ggplot 但无法做到这一点plot 我碰到这个帖子包括评论中的答案在内的答案对我不起作用 Code 1 emission lt mynei gt s
  • 拖动多个项目时,此视图不允许 DataGrid“EditItem”

    我有一个数据网格 它获取如下数据 public struct MyData public string name set get public string artist set get public string location set
  • 在 PyQt 中对单选按钮进行分组

    import sys from PyQt4 import QtCore QtGui class Class1 QtGui QMainWindow def init self super Class1 self init self func
  • 如何在日期选择器中将日期格式 (MM/DD/YY) 更改为 (YYYY-MM-DD)

    我有以下日期选择器脚本
  • 如何修复 WordPress 中的“已达到 508 资源限制”错误?

    508 已达到资源限制 Wordpress 此错误一次又一次发生 我无法在没有看到此错误的情况下发布单个帖子 由于超出资源限制 该网站暂时无法满足您的请求 请稍后再试 我该如何解决这个问题 实际上 当进程数量超过托管提供商设置的限制时 就会
  • jQuery.on() 是否适用于创建事件处理程序后添加的元素?

    我一直以来的印象是 on 工作就像 live 关于动态创建的元素 例如我使用 foo on click function alert click 然后是一个带有类的元素foo是由于某些 AJAX 创建的 现在我期望单击该元素会引发警报 实际
  • 如何用 PHP 替换字符串中的变量?

    所以我有一些 PHP 代码 如下所示 message Here is the result s 我只是用 s 作为例子 它基本上是一个占位符 用于存放任何内容 然后我将字符串传递给一个函数 我希望该函数将 s 替换为该值 我需要做什么才能实
  • 如何在 ruby​​ 中使用 utf8 的正则表达式

    在 RoR 中 如何使用 utf8 代码验证发布表单的中文或日文单词 在GBK代码中 它使用 u4e00 u9fa5 来验证中文单词 在 Php 中 它使用 x 4e00 x 9fa5 u 来表示 utf 8 页面 Ruby 1 8 对 U