R.replace(/[0-9](?!([0-9]{4}))/g,'*','123456789');
yields 12345****
want to input 123-45-6789 and yield 123-45-****
Currently based on above it yields ***-**-****
不知道为什么。我正在使用rambda js进行模拟。 http://ramdajs.com/docs/#replace
需要帮助构建正则表达式。任何帮助表示赞赏
答案 0 :(得分:1)
您当前的正则表达式匹配紧跟其后没有四个其他数字的任何数字。字符串123-45-6789中的每个数字都是这种情况。
如果您使用的字符串的最后四个字符始终为数字,则可以在没有正则表达式的情况下轻松完成此操作。
但是如果你想要一个简单的正则表达式,你可以使用以下正则表达式进行搜索并替换为****。
\d{4}$
请注意,如果字符串不以四位数结尾,则此正则表达式不会匹配任何内容。因此,它将与下面的前三个示例匹配,并且在最后三个示例中失败。
12-345-6789
123-45-6789
123456789
1-2-3-4-5-6-7-8-9
12-34-56-78-9
123-456-789
如果你想要一个适用于所有六种情况的正则表达式,你可以使用它:
\d(?=(?:\D*\d){0,3} *$)
答案 1 :(得分:0)
R.replace(/ \ d(?=(?:\ D * \ d){0,3} $)/ g,'','123-45-6789') ;工作得很好。谢谢堆。感谢弗朗西斯!