|
||||||||
JavaScriptの正規表現では、数値文字を意味する \d は、 ブラウザによって解釈が違ってきます。従ってその逆を意味する \D も意味が違ってきます。
通常 \d は半角数字を意味し、
\D は半角数字以外を意味するとされています。
自分のページ内の文字やプログラムを扱うのであれば問題は出難いですが、
ユーザーからの入力を処理する場合には要注意ですね。
従って日頃から
var str = '5678'; //全角数字の文字列 if( str.match(/\d/) ) alert(' match!!! ') IEやOperaでは[0-9] の意味になるので、NetscapeやFireFoxの場合のみアラートが出ます。 var str = '5678'; //半角数字の文字列 if( str.match(/[0-9]/) ) alert(' match!!! ') var str = '5678'; //全角数字の文字列 if( str.match(/[0-90-9]/) ) alert(' match!!! ') \D は [^0-9] [^0-9] [^0-90-9] ナンバリング補助を作っててNN系でNaNが出てて結局これが原因でした。 その他の『\○』は調べていませんが、他にもありえます。 今現在無いとしても将来あるかもしれませんし、過去のNN系での日本語の文字数の数え方なども違います。 サーバーサイドスクリプトであればサーバーに合わせるだけで対応可能ですが、 JavaScriptはビジターのブラウザで動きます。 ブラウザの種類もバージョンも多岐にわたりますし、今後もどんどん増えていきます。 よって『最初からマッチングには省略系は使わない』を前提にしてしまった方が良いでしょうね。 |
専用ページから申し込むと So-netより高い3万円CB
案ずるより産むが易し
使ってみれば疑問も解決 XREA+ (plus) 206円/月 ( お試し7日間 ) CORE SERVER 428円/月 ( お試し15日間 ) ロリポップ 270円/月 ( お試し期間10日間 ) ヘテムル 1620円/月 ( お試し期間15日間 ) さくら 129円/月 ( お試し期間2週間 ) |
|||||||