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
More regex stuff by me: • Awesome Regex List of the best regex resources • Regex+ JS regexes + future “Regular Expressions Cookbook manages to be simultaneously accessible and almost ridiculously comprehensive.” —Jeff Atwood Check out Regex+, the lightweight spiritual successor to XRegExp that once again takes JavaScript regexes to the next level. What is it? XRegExp provides augmented (and extens
Five years ago I posted Mimicking Lookbehind in JavaScript on this blog, wherein I detailed several ways to emulate positive and negative lookbehind in JavaScript. My approaches back then were all fairly rough, and it was complicated to properly customize any of them to work with a given pattern. Plus, they were only designed to simulate lookbehind in a regex-based replacement. To make it much eas
Index JavaScriptで利用できる正規表現についてまとめました。 最後の後読み、否定後読み以外は利用可能かと思います。 モード修飾子(i,m,g) \n,\r,\u2028,\u2029以外の任意の1文字 空白文字以外( \S ) 数字( \d ) 数字以外( \D ) 先頭( ^ ) 末尾( $ ) 単語区切り( \b ) 単語区切り以外( \B ) 0以上の繰り返し( * ) 1以上の繰り返し( + ) 0または1回( ? ) 最短マッチ( .*? ) nの繰り返し( {n} ) n以上の繰り返し( {n,} ) n以上,m以下の繰り返し( {n,m} ) いずれかの文字( [▲◎■] ) いずれかのパターン( (▲|◎|■) ) 後方参照( \n ) エスケープ( \ ) 先読み( ?=◎◎◎ ) 先読み否定( ?!◎◎◎ ) 後読み( ?<=◎◎◎ ) 否定後読み( ?<
Blog Post Featured post Industrial Vs Non Industrial Plasma Cutting Machines Continue reading Points to Note When Shopping for a Washing Machine There are different washing machines brands in New Zealand. When shopping, therefore, you need to ensure that first, you get a quality machine; a machine that will last through many years without breaking down. You check product warranties and reviews whe
新政党「たちあがれ日本」のホームページが話題になっていたので私も見てみた。そして、メーリングリストの受付フォーム中に記述されたメールアドレスのチェック用のJavaScriptが気になった。以下に引用する。 if (!node.match(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/)){ alert("e-mailアドレスをご確認ください。"); return false; } https://www.tachiagare.jp/mail.php メールアドレスをチェックするための正規表現は、ネット上でたびたび問題視される定番ネタだか、その論点は、RFC(RFC2822やRFC5322)に対して準拠しているかどうかだと思う。例えばこれ(404 Blog Not Found:「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ)。 しかし、現実に
単純な特定文字列の存在確認をするのに indexOf と正規表現でどれくらい差があるのかなと思って、次のようなコードを書きました。 (function(){ var a = [], n = 10000; for (var i = 0; i < n; i++) { a.push('item:' + i); } var str = a.join('\n'); var s = new Date(); for (var i = 0; i < 3000; i++) { //var m = str.indexOf('item:9999'); // (1) indexOf //var m = /item:9999/.exec(str); // (2) 静的な正規表現 //var m = new RegExp('item:9999').exec(str); // (3) 動的生成の正規表現 //var m
追記 os0xさんにjson2.jsで使われている手法である事を教えてもらいました。 正しくはエスケープが必要。 以下フォーラムで議論されている内容から拝借 validating json unnecessarily is killing firefox - jQuery Forum // Try to use the native JSON parser first if (window.JSON && window.JSON.parse) { try { return window.JSON.parse( data ); } catch (err) { jQuery.error( "Invalid JSON: " + data ); } } else { if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-f
id:hoshikuzu さんが言ってたので書いてみた。こんな感じ↓。コードはすぐ書けたけど、この記事書くのに30分以上かかってる気がする。 javascript:(~~[])[<_>{/...$/({})[~~[]][~~[]]}{/../({})[~~[]][1]}{/...$/({}[{}])[ ~~[]][~~[]]}{/..$/(!{})[~~[]][~~[]]}{/./(!![])[~~[]][~~[]]}{/...$/(!![])[~~[]][ ~~[]]}{/..$/(!![])[~~[]][~~[]]}{/...$/({})[~~[]][~~[]]}{/./(!![])[~~[]][~~[]]}{ /../({})[~~[]][~~!![]]}{/...$/(!![])[~~[]][~~[]]}</_>][<_>{/...$/({})[~~[]][~~[] ]}{/../
とても単純な正規表現だけれど、照合するのに非常に時間のかかるパターンがあります。下記はその一例。 var s = "abcdefghijklmnopqrstuvwxyz".match(/a(.+)+c/); 照合することは一目瞭然です。しかし、+ は最長一致型の照合なので2重のバックトラックが発生して、上の文字列の場合、一番最後になって照合が確認されることになります。たぶん、直感的には入力文字列の長さに応じて指数オーダで時間がかかるのだと思います。 実際にブラウザ上で確認すると、ChromeとIEは数秒程度かかりました。Firefoxは「警告:応答のないスクリプト」のポップアップが表示されてしまいました。 ところが、Operaは一瞬です。Date関数で処理時間を測定してもゼロです。Safariも結構高速で、数ミリ秒程度です。 通常、正規表現の実行は、オートマトンを実行する中間コードにコンパ
※ 画面は公式サイトより Webアプリケーションを開発したり、よりコーディング量を少なくシステムを開発する上で正規表現の存在は欠かすことができない。良い正規表現を組めるかどうかで見通しの良いシステムができるかどうか決まってくるだろう。 Named captureをJavaScriptでも 昔からある正規表現ではあるが、JavaScriptでサポートされているものは機能があまり多くない。他のプログラミング言語同等のレベルに引き上げてくれるのがXRegExpだ。 今回紹介するオープンソース・ソフトウェアはXRegExp、JavaScriptの正規表現を機能強化するライブラリだ。 XRegExpは通常使える正規表現機能に加えて、幾つかの機能追加を行っている。特徴的なものとしては、Named captureがあるだろう。これは正規表現のマッチング結果を$1、$2ではなく、指定した名前(nameやv
タイトル変えました。旧タイトル「JavaScriptでよく使う書き方」。よく使うけど毎回忘れる。 正規表現にマッチするかどうか。 RegExp#testを使う。 /abc/.test("abcdefg") // => true String#searchはマッチした位置を返す。マッチしない場合は-1。先頭にマッチすると0でfalseなので注意。真偽値が欲しい場合はString#searchを使わない。 "abcdefg".search(/xxx/) // => -1 "abcdefg".search(/def/) // => 3 "abcdefg".search(/abc/) == false // => true 正規表現の部分マッチを得る。 部分マッチを得るには、RegExp#execかString#matchを使う。execとmatchの速度は大して変わらない。 正規表現のベンチマー
2009年05月01日14:00 カテゴリTipsLightweight Languages tips - "%E5%BC%BE" を「弾」にするには? これ、昨今では最もよく再発明されている車輪の一つかも。 検索サイトなどのURL中に含まれる「%+16進」の形にエンコードされた日本語文字列(例えばI%E3%82%B7%E3%83%A1%E3%82%B8I)を、LinuxのCUI上でデコードする簡単な方法は.. - 人力検索はてな 最古の文字コード変換プログラムの一つであるnkfが対応していたとは知らなかった。 JavaScriptで decodeURIComponent()を使えばOKです。以下、例。 Decoded: Encoded: <dl> <dt>Decoded:</dt> <dd><input id="uri.decoded" type="text" size="64" val
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く