java使用replace后的结果和javascript的replace后的结果不一样

RUSSIAVK
  • 26
javascript:

"4497e230a1667d9ca546d24e8b67878c".replace(/o/, "ow").replace(/d/, "do").replace(/a/, "ad").replace(/h/, "ha").replace(/s/, "sh").replace(/n/, "ns").replace(/m/, "mo")


java

"4497e230a1667d9ca546d24e8b67878c".replace("o", "ow").replace("d", "do").replace("a", "ad").replace("h", "ha").replace("s", "sh").replace("n", "ns").replace("m", "mo");


js结果:
4497e230ad1667do9ca546d24e8b67878c
java结果:
4497e230ad1667do9cad546do24e8b67878c

评论
阅读 730
3 个回答

解决了,用replaceFirst

JavaScript的那个只会替换第一个,比如'aaaa'.replace(/a/, 'b')的结果会是'baaa',要全局替换的话,需要打开全局标识,如'aaaa'.replace(/a/g, 'b'),这样结果就会是'bbbb'

java的replace默认是替换所有,js的替换第一个
js的要用替换所有要用replace(/x/g, 'y')

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏