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

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

阅读 3.4k
3 个回答

解决了,用replaceFirst

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题