我正在用Ruby和regex练习删除某些不需要的字符.例如:

input = input.gsub(/<\/?[^>]*>/, '')

and for special characters, example ☻ or ™:

input = input.gsub('&#', '')

这只留下数字,好吗.但这只有在用户输入特殊字符作为代码时才有效,如:

&#153;

My question:

™ ☻

推荐答案

首先,我认为定义什么是"正确的输入"并删除其他内容可能更容易.例如:

input = input.gsub(/[^0-9A-Za-z]/, '')

如果这不是你想要的(你想要支持非拉丁字母,等等),那么我认为你应该列出一个你想要删除的字形列表(比如™ 或☻), 然后一个接一个地删除它们,因为很难通过编程区分中文、阿拉伯语等字符和象形文字.

最后,您可能希望通过转换HTML转义序列或从中转换来规范输入.

Ruby-on-rails相关问答推荐

在数组中定位不匹配的索引

在Ruby on rails中,重复访问ActiveRecordModel返回相同的对象:预期行为还是错误?

带有data-turbo的rails`link_to‘未获得turbo_stream请求格式

Sweet Alert 2 在 Rails 7 应用程序中无法正常工作

如何保持 en.yml DRY?

如何为 I18n 设置 raise_on_missing_translations

BigDecimals 的总和最终成为整数 [Ruby on Rails]

如何启动 rails 控制台并专门使用测试数据库?

Rails 自动加载完全大写的名称,如 API

如何在 Windows 中更新 ruby

rails 3 - link_to 销毁不工作

rails4 未知编码名称 - CP720

耙路由错误缺少:路由定义上的操作键

jQuery ajax 请求不会触发 Rails 控制器的 JS 响应?

Rails 助手应该假设实例变量存在还是应该将它们作为参数接收?

以最Ruby 风格计算 ActiveSupport:TimeWithZone 天数的差异?

sass-rails 助手image-url、asset-url在 rails 3.2.1 中不起作用

如何测试也定义为辅助方法的 ApplicationController 方法?

测试和规格有什么区别?

为什么 Mac OS X 带有 ruby​​/rails?