$ を使用して入力の終わりに一致させると、他の場所では長さゼロの一致が得られますが、WebKit との一致の証拠はありません。
function showBug() {
Result = "the end.".replace( /(end\.)([\s]|$)?/img, makeChange );
return;
}
function makeChange() {
for ( var i = 0; i < arguments.length; i += 1 ) {
document.write( "arg" + i + " -->" + arguments[ i ] + "<--" + "<BR>" );
}
}
与える
arg0 -->end.<--
arg1 -->end.<--
arg2 -->undefined<--
arg3 -->4<--
arg4 -->the end.<--
のためAppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.5 Safari/534.55.3
に、またのためにAppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
。
Opera ( Presto/2.10.229 Version/11.62
)、FF ( Gecko/20100101 Firefox/10.0.2
)、IE ( MSIE 8.0; Trident/4.0
) はすべて
arg0 -->end.<--
arg1 -->end.<--
arg2 --><--
arg3 -->4<--
arg4 -->the end.<--
これは、$2 で一致を検出できることを意味します (実際には、URL の末尾のドットを URL の一部ではないと解釈することです)。私は現在、WebKit の末尾のスペースを追加し、後でそれを削除していますが、誰かがより良い解決策を持っているかどうか疑問に思っており、これをバグとして提起する必要があることを確認できます。