【发布时间】:2026-02-24 01:15:01
【问题描述】:
我有这个正则表达式来匹配一个有效的名字:/^['"\s\-.*0-9\u00BF-\u1FFF\u2C00-\uD7FF\w]+$/.test(name)
我无法弄清楚如何将这种匹配样式的正则表达式转换为一个旨在使用replace 过滤掉无效字符的正则表达式。
理想情况下,我希望能够在name 中取一个无效名称,通过replace 运行它以替换任何无效字符,然后无论如何都让原始测试返回true(因为无效字符将是过滤掉)。
【问题讨论】:
-
为什么要运行替换,只需将您的正则表达式严格限制为您想要允许的字符..
-
基于@hwnd 的评论,您的有效字符是什么?或者,如果这更容易,你的无效字符是什么?
-
使用两个正则表达式,一个用于查找部分正确的名称,一个用于修复名称。回调确实是您所需要的。如果 JS 不能做到这一点,你必须坐在一个循环中并自己重建字符串。哦,等等,这不是字符串...
标签: javascript regex