You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
正規表現に変数を使いたくて、前に覚えたJavaScriptの正規表現で変数? - おふぃす・ぞんち開発日記みたいに re = new RegExp("^" + vname + "[0-9]+$"); ってやってたのだけど、置換文字列に$1を使うときのやり方でハマった。 var keyword = 'text'; var reg = new RegExp('(' + keyword + ')', 'gi'); var pre = 'pre'; var post = 'post'; 'text-text-text'.replace(reg, pre + $1 + post); でエラー。 なんでだ?なんでだ?と散々考えた結果、 var keyword = 'text'; var reg = new RegExp('(' + keyword + ')', 'gi'); var pre = 'pr
正規表現オブジェクトをどのように配置すれば効率的なのか調べました。 配置パターン A. ループ内にべた書き function job(expr, n) { var i = 0, match; for (var i = 0; i < n; ++i) { match = /regexp1/.exec(expr); match = /regexp2/.exec(expr); } } B. スコープ内(ループの外)に配置 function job(expr, n) { var i = 0, match, REX1 = /regexp1/, REX2 = /regexp2/; for (var i = 0; i < n; ++i) { match = REX1.exec(expr); match = REX2.exec(expr); } } C. 5つ外側のスコープに配置 (function() {
locationと同じように使えるURIコンストラクタ。new URI("http://example.com/foo?q=bar#qxx").searchのように使う。 function URI(uri) { uri = String(uri); var parser = /^([^:/?#]+:)?\/\/(([^/?#:]*):?(\d*))?([^?#]*)(\?[^#]*)?(#.*)?$/; var m = uri.match(parser); if (!m) throw new URIError("malformed URI given"); this.href = m[0]; this.protocol = m[1] || ""; this.host = m[2] || ""; this.hostname = m[3] || ""; this.port = m[4] ||
※ 画面は公式サイトより Webアプリケーションを開発したり、よりコーディング量を少なくシステムを開発する上で正規表現の存在は欠かすことができない。良い正規表現を組めるかどうかで見通しの良いシステムができるかどうか決まってくるだろう。 Named captureをJavaScriptでも 昔からある正規表現ではあるが、JavaScriptでサポートされているものは機能があまり多くない。他のプログラミング言語同等のレベルに引き上げてくれるのがXRegExpだ。 今回紹介するオープンソース・ソフトウェアはXRegExp、JavaScriptの正規表現を機能強化するライブラリだ。 XRegExpは通常使える正規表現機能に加えて、幾つかの機能追加を行っている。特徴的なものとしては、Named captureがあるだろう。これは正規表現のマッチング結果を$1、$2ではなく、指定した名前(nameやv
正規表現で"\d"は、"[0-9]"と一緒だとずっと思っていましたが、FireFoxでは全角数字もマッチします。(FireFox1.5.0.4で確認) /\d/.test('1') // =>true /\d/.test('1') // =>trueちなみにIE 6、Opera 9では、"/\d/.test('1')"はfalseとなります。 気になったので、"\s"、"\w"についても調べてみたところ、下記のような結果になりました。 パターンFireFox 1.5,2.0IE 6, 7Opera 9 /\s/.test(' ') // 半角truetruetrue /\s/.test(' ') // 全角truefalsetrue /\d/.test('1') // 半角truetruetrue /\d/.test('1') // 全角truefalsefalse /\w/.test('
またまた XPath ネタです。 先日、XPath の字句解析をワンライナーで作ってみた。 - IT戦記で書いた正規表現の XPath 字句解析ですが、よく考えるといろいろおかしかった(不正な文字が無視されたりする)& id:otsune さんからコメントやブクマの突っ込みもありまして、1から正規表現を勉強してから新しく書き直すことにしました。 正規表現の勉強方法 以下の二つの方法で勉強しました。 1.SpiderMonkey の正規表現デバッグオプションを使う SpiderMonkey をビルドするときに、以下のフラグを付けてビルドします。 $ make -f Makefile.ref "DEFINES=-DREGEXP_DEBUG -DDEBUG"こうすると正規表現がどういう風に実行されたかを調べることができます。 こんな感じ $ js js> 'foobar'.match(/o+/)
情報共有の進んだ会社とかでは、メールをもらったお客さんのことをちゃんと組織として覚えておくために、コンタクト情報としてデータベースに共有することを推進していることが多い。でも、いくらメールには署名があって、すでに電子化されているとはいえ、ふつうはテキスト直書きの署名だったりして、構造化されてなくってかなり扱いにくい。データベースに登録するために、メーラーとブラウザの間で氏名をコピペ、メアドをコピペ、電話番号をコピペということをひたすら繰り返す。正直あまりやりたくない。 まあそんな作業をやらされる側にいるという大前提があるのだけれども、そんな不毛な作業をちょっとでも軽減するために、このスクリプトは作られました、実用系スクリプト第3弾。実用系ということですが、実装はたいしたことない、でもなんか今までになく便利になりそうな予感。 デモサイトはこちら: http://www.geocities.j
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く