2

该方法示例使用 JavaScript 和正则表达式string.replace(/[\w]/g, "*")将单词字符替换为 *。

例子:

John & Sandy went to the market.

变成:

**** &***; ***** **** ** *** ******.

我想这样做,除了我们想避免替换“&”和“;”中的字符 没有空格分隔的。

例子:

 John & Sandy are awesome & rock; They are also weird.

变成:

 **** & ***** *** ******* & ****; **** *** **** *****.

我的正则表达式很弱,我很难弄清楚这一点。阅读其他解决方案也被证明是困难的。我很确定这可以用一种正则表达式模式完成。

如果您能解释正则表达式模式中到底发生了什么,它也会对我有所帮助。

如果您可以限制“&”和“;”中的字符序列,则可以加分。

4

1 回答 1

5
' John & Sandy are awesome & rock; They are also weird.'.replace(
    /(&[^\s;]*;)|\w/g, function(a, b) {
    return b || '*'; });

结果:

 **** & ***** *** ******* & ****; **** *** **** *****.

在 Firefox 和 Chrome 中尝试并为我工作。

于 2013-08-02T20:56:23.523 回答