at.*_*at. 5 javascript regex replace firebase firebase-realtime-database
我想用%20替换字符串中的句点以用于Firebase密钥.我可以一次做1个时间段:
string.replace('.', '%20')
Run Code Online (Sandbox Code Playgroud)
我甚至可以用/g正则表达式标志来做所有这些:
string.replace(/\./g, '%20')
Run Code Online (Sandbox Code Playgroud)
但Firebase规则给了我一个错误:
保存规则时出错 - 第5行:正则表达式不支持i以外的标志
所以我需要一个表达式来替换所有句点而不使用/g.我可以链接.replace('.', '%20')很多次:
string.replace('.', '%20').replace('.', '%20').replace('.', '%20').replace('.', '%20')
Run Code Online (Sandbox Code Playgroud)
但我希望有更好的方法.
更新:我曾尝试过string.split('.').join('%20'),但Firebase会抛出错误:
类型错误:对非目标的目标进行函数调用.
我猜他们split在他们的JSON规则解析器中取出了该函数.
更新2:我也试过了(function() {var s = auth.token.email; while (s.indexOf('.') != -1) { s = s.replace('.', '%20') } return s})().Firebase抱怨他们的数据库规则中不允许使用函数定义.
更新3:感谢Firebase的精彩支持,我发现string.replace他们的数据库规则中的函数已被替换为替换所有子串的版本,而不仅仅是一次出现.所以实际上string.replace('.', %2E')完美无缺!
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |