ドットインストール代表のライフハックブログ
![IDEA * IDEA](https://cdn-ak-scissors.b.st-hatena.com/image/square/bfe1c1b37a313eb69753d9888a67446398278e71/height=288;version=1;width=512/http%3A%2F%2Fwww.ideaxidea.com%2Fwp-content%2Fuploads%2F2009%2F03%2Fphp_top.gif)
入力チェックなどでお世話になる正規表現ですが、これがなかなか奥が深い。複雑な正規表現は一体何をしているのか解析するだけでも一苦労。 この前壁にぶつかったのが 「ある特定の"文字列"を含まないようにチェックをかけたい」 というもの。ある特定の1文字を含まないような正規表現は簡単ですが、文字列となると、これが結構難しい。 たとえば「a」と「b」は含まれていていいけど、「ab」という文字列は駄目という場合。なんとなく ^[^(ab)]+$ でいけそうな気がするけど、これでは駄目。 ちなみに正規表現を試したいときはここのサイトを利用すると便利。どれがマッチしたのかを視覚的に表示してくれるので、とってもわかりやすい。 「ab」の文字列を否定する場合は「b」の前に「a」がないという記述をしないと駄目らしい。ここを参考に。実際の正規表現はこんな感じ。 ^(([^b]|[^a]b)|[^a]a)+$ ちな
<script type="text/javascript"> /** * [関数名] chkRegEmail * [機 能] 正規表現によるメールアドレス(E-mail)チェック * [引 数] * @param str 入力された文字列 * [返り値] * @return true(E-mail形式である場合) | false(E-mail形式でない場合) */ function chkRegEmail(str){ /* E-mail形式の正規表現パターン */ /* @が含まれていて、最後が .(ドット)でないなら正しいとする */ var Seiki=/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i; /* 入力された値がパターンにマッチするか調べる */ if(str!=""){ if(str.match(Seiki)){ alert(str.match(Seiki
正規表現というとPerlのそれがもっとも有名ですが、最近ではPHPでもほぼ同じぐらい扱うことが出来ますし、APIを利用すれば他の言語でも十分実用レベルで使用できます。 が、オブジェクト指向の言語の正規表現による検索や置換は、ちょっといくつか段階を置かなければならないようです。 基本的には、JavaScriptの正規表現はPerlやPHPよりもJAVAに似てるようです。 正規表現オブジェクトを作成してやって、文字列オブジェクトのメソッドに渡す・・・。といった感じ。 が、JavaScriptではもっと気軽に使えるようなので、今回はその方法を。 オブジェクト指向言語では、文字列中のとある文字列を別の文字列に置き換えるようなメソッドはあまりありません。 なので、正規表現の置換を使うことになります。 以下は、「abcdefg」という文字列のうちの「cd」を「12」に変更する例です。 置換す
1.正規表現とはなにか? 端的に言えば、「いくつかの文字列を一つの形式で表現するための表現方法」です。 では、なぜこの表現方法が有名なのかといえば、この表現方法を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索することができるためです。 この形式を使えば、以下のようなコギャルの会話にもついていけます(^_^) 「Windows ってあって…WINDOWSかもしんないしぃ、次にスペースが入ってるかもしんないしぃ、入ってないかもしんないし、後にやっぱ 98 が付くってゆーかー、もしかすると 95 が付いてもいいかなぁって感じでぇ…」 これ以上続けるとこちらがキレてしまいそうなのでこのあたりにしておきますが…これは、正規表現で書くと… W(indows|INDOWS) ?9[85] って感じで一行で書けちゃうっていうかぁ…あ、つい、口調が移ってしまった(^_^;)…書けるのでありま
ということで、今回はJavaScriptのパターンマッチネタです。 比較するメソッドとしてmatch、search、test、exec、の4つを取り上げます。 それぞれ性質が異なるので、使う場合は注意が必要です。 比較のために、以下のようなサンプルを作ってみました。 <script type="text/javascript"> <!-- // match()の場合 function hoge1() { base_str = "オッス。おら Tawabagani。" + "友人の Abeshiganiと間違えないでくれよな。"; match_pattern = /\w+?gani/g; r = base_str.match(match_pattern); if (r) { for(var i=0; i<r.length; i++) { alert(r[i]); } } else { ale
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く