タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとjavascriptとregexに関するt_ashulaのブックマーク (2)

  • 正規表現ベースの字句解析器を書くときは - 最速チュパカブラ研究会

    正規表現ベースの字句解析器を書くときは、narcissusというJSベースのJS処理系のコードを見るといいです http://mxr.mozilla.org/mozilla/source/js/narcissus/jsparse.js 面倒な正規表現の模範解答が載ってます。下手に自分で考えて誤爆するより、一流の人が書いたものを使いましょう 正規表現リテラル /^\/((?:\\.|[^\/])+)\/([gimy]*)/ 文字列(ダブルクォート、シングルクォート共)/^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/ → 訂正 Cスタイルコメント(一行、ブロック共) /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/ ↓narcissusについてはyukobaさんのプレゼンを(去年のShibuya.es) http://accelart.jp/shibuyajs

  • JavaScript で while(/([^=]+)=([^,]+),?/g) {〜} 相当のコードを書くには? - y-kawazの日記

    以下のような感じで replace メソッドの第2引数に文字列の代わりにコールバック関数を書けば良い。 function foo() { var ret = RegExp.$1 + '=' + RegExp.$2; alert(ret); return ret; } str = 'a=1,b=2,c=3'; str.replace(/([^=]+)=([^,]+),?/g, foo); ちなみにコールバック関数の戻り値が置換結果として利用される。 但し、このコードはFirefoxやOperaでは動くけどIEでは動かないようだ。 IEでは RegExp.$1 とかには空文字になってしまうのでマルチブラウザを考えたらこの書き方は戴けない。 マルチブラウザ対応のコード 色々試した結果、マルチブラウザ対応するには RegExp ではなく arguments を使えばよさそうだ。 というわけで以下の

    JavaScript で while(/([^=]+)=([^,]+),?/g) {〜} 相当のコードを書くには? - y-kawazの日記
  • 1