ruby-on-rails - 替换用户名末尾的几个字符串
问题描述
在 html.slim 视图文件中使用这段代码将名称的结尾从 更改e
为ai
,它工作正常:
@provider_user.name.split.map {|w| (w.end_with?('e') ? (w.chomp(w[w.length - 1]) + 'ai') : w) }.join(" ")
并将此豌豆用于多种选择:
@provider_user.name.split.map {|w| (w.end_with?('e') ? (w.chomp(w[w.length - 1]) + 'ai') : (w.end_with?('d') ? (w.chomp(w[w.length - 1]) + 'i') : (w.end_with?('as') ? (w.chomp(w[w.length - 1]) + 'u') : w))) }.join(" ")
当只需要更改最后一个字符串时,一切都很好,比如name = namai, namd = nami
.
但是对于(w.end_with?('as') ? (w.chomp(w[w.length - 1]) + 'u')
我namas = namau
来说,而不是namas = namu
.
猜猜这是因为它只length - 1
替换了最后一个字符串。
如何调整它以替换最后一个字符串?
解决方案
只吃最后两个字符
w.end_with?('as') ? (w.chomp(w[w.length - 2, 2]) + 'u'
请注意,w.length - 2
位置到倒数第二个字符,并且, 2
表示您想要两个字符,而不是一个。
推荐阅读
- iframe - 第三方跟踪的跨域帧错误
- asp.net-core - ApiResource 返回“invalid_scope”身份服务器
- python - 如何将响应写入变量(Python、Tkinter)
- amazon-web-services - 通过 NAT-s 将静态 IP 分配给我由 Kops 管理的子网 - AWS
- python - Pytorch - 自定义数据集超出范围
- json - 在 Power Apps 中运行 SQL 查询 - 响应出现 JSON 格式错误
- python - JQuery ajax - 如何使用 GET 方法发送 JSON?
- azure - IIS https 托管 - 通过代码获取 mmc 安装的证书
- java - 向 InelliJ 控制台打印一些转义序列的奇怪副作用,为什么?
- jenkins - 如何在自定义 groovy 类中使用 Jenkins Job DSL API