次の JavaScript を見てください。私はそれから何かを取り出したので、問題の本質に集中することができます.
prepPath 関数を続けて 2 回呼び出して、まったく同じ文字列を渡していることがわかります。Firefox と IE8 では、この関数は (予想どおり) 毎回 true をアラートします。しかし、Chromium 5.0.375.127 (55887) Ubuntu 10.04 では、関数は最初の呼び出しで true を返し、2 回目の呼び出しで false を返しますが、入力はまったく同じままです!
<script type="text/javascript">
function prepPath(str)
{
var regX = /[^\s/"'\\].*[^\s/"'\\]/g;
if(regX.test(str))
{
alert("true: " + str);
}
else
{
alert("false; " + str);
}
}
prepPath("/desktop"); // alerts: true
prepPath("/desktop"); // alerts: false
</script>
Chromiumで2回目にfalseを返すのはなぜですか?