Skip to main contentModule regexp
Source - as_regexp 🔒
- build_named_groups 🔒
- 名前付きキャプチャグループ(ES2018)の
groups オブジェクトを組み立てる。
values は各グループ番号 idx(0 は全体一致なので使わない)に対応する値。 - css_deg_static 🔒
- css_em_static 🔒
- css_escape_static 🔒
CSS.escape(str)(CSSOM。丸ごと未対応だった)。CSS 識別子として安全な文字列へ
エスケープする。WHATWG CSSOM の「serialize an identifier」アルゴリズムに準拠:
NULL は U+FFFD に置換、制御文字と先頭の数字(および - の直後の数字)は
16進コードポイント + 空白でエスケープ、- 単体は \-、英数字/_/-/非ASCII
はそのまま、それ以外の記号はバックスラッシュを前置する。- css_number_static 🔒
- css_percent_static 🔒
- css_px_static 🔒
- css_rem_static 🔒
- css_supports_static 🔒
CSS.supports(conditionText) / CSS.supports(property, value)(CSSOM。
丸ごと未対応だった)。@supports の条件式評価と全く同じ
css::supports_condition_matches をそのまま再利用する(葉の
(property: value) 自体は「この処理系が構文解析できる宣言は常に対応して
いる」扱いの簡略方針である点も含め、@supports と挙動を一致させる)。- css_unit_value_to_string 🔒
- expand_dollar 🔒
$&/$1..$99/$$/$`/$'/$<name> 展開。以前は $&/$1-$9/$$ のみで、
$`(一致より前の部分)・$'(一致より後ろの部分)・$<name>(名前付きキャプチャ
グループ、ES2018。名前付きグループ実装と同時にここも配線)・2桁のグループ番号
($10 以降)が非対応だった。- make_css_unit_value 🔒
CSS.number()/.percent()/.px()/.em()/.rem()/.deg()(CSS Typed OM。
element.attributeStyleMapやCSSStyleValueの演算(.add()/.mul()等)を
伴う完全なTyped OMは丸ごと未対応(別途Document.parseHTMLUnsafeと同格の
「独立した実装が必要」大規模領域としてspec/TODO.mdへ記載)だが、値と
単位を保持し文字列化できるだけのCSSUnitValueファクトリ関数群自体は
単純な「値+単位のオブジェクトを手動構築する」定番パターン(DOMRect/
DOMPointと同型)で自己完結して実装できるため、こちらだけ丸ごと
未対応だったものを個別に実装する。toString()は"{value}{unit記号}"
を返す(numberは単位記号無し、percentは%、それ以外は単位名を
そのまま接尾辞に使う)。2026-07-18 発見・実装。- match_to_array 🔒
- マッチ結果を JS 配列(index/input プロパティ付き)に変換。
- match_to_array_impl 🔒
- re_compile 🔒
RegExp.prototype.compile(pattern, flags)(レガシーだが今も仕様に残る
メソッド。丸ごと未対応だった)。new RegExp(...) と異なり新しいオブジェクトを
作らず、this 自身の内部状態(パターン・フラグ・lastIndex)をその場で
差し替える。pattern が既存の RegExp なら仕様どおりその source/flags を
継承する(regexp_ctor の1引数解決ロジックと同じ規則)。- re_exec 🔒
- re_symbol_match 🔒
RegExp.prototype[Symbol.match](string) (ES2015)- re_symbol_match_all 🔒
RegExp.prototype[Symbol.matchAll](string) (ES2020)- re_symbol_replace 🔒
RegExp.prototype[Symbol.replace](string, replaceValue) (ES2015)- re_symbol_search 🔒
RegExp.prototype[Symbol.search](string) (ES2015)- re_symbol_split 🔒
RegExp.prototype[Symbol.split](string, limit) (ES2015)- re_test 🔒
- re_to_string 🔒
- regex_replace 🔒
- RegExp 置換(関数リプレーサ対応・g で全置換)。
- regexp_ctor 🔒
- regexp_escape_static 🔒
RegExp.escape(str)(ES2025)。ユーザー入力を正規表現の構文文字として解釈させない
ために new RegExp(userInput) へ渡す前に使う定番イディオム向け。RegExp 構文上の
特殊文字(^ $ \ . * + ? ( ) [ ] { } | /)と一部の空白系制御文字をエスケープする
簡略実装(Unicode プロパティエスケープ等が絡む厳密なコーナーケースは対象外)。- regexp_get
- RegExp オブジェクトのプロパティ/メソッド(interp の get_property から)。
- str_match 🔒
- str_match_all 🔒
String.prototype.matchAll(regexp)。以前は regexp に g フラグが無くても
黙って全件マッチを返しており、仕様上必須の TypeError(無限ループの温床になり得る
ため意図的に要求される)を投げていなかった。- str_search 🔒