regexp.exec(string)において、gフラグがセットされていた場合、検索が文字列の先頭から行われるのではなくregexp.lastIndexプロパティの場所から行われるようになる(この値は最初は0にセットされている)。もしマッチが成功した場合、regexp.lastIndexはマッチした場所の次の文字の場所にセットされる。もしマッチが失敗した場合は0にリセットされる。
これを利用すれば、ループの中でexecを同じ文字列に対して何度も呼び出すことで、文字列中に複数存在するパターンをすべて探し出すことができる。
string.match(regexp)において、gフラグがセットされていた場合、このメソッドはすべてのマッチ結果を配列で返すが、キャプチャグループによるキャプチャ結果は取得できなくなる。
JavaScript
【JavaScript】URLにマッチする正規表現
URLからurl、scheme、slash、host、port、path、query、hashを正規表現を使って抜き出す。
これはstring.match(regexp)とregexp.exec(string)を使用すると実現できる。
JavaScript スプレッド構文(Spread syntax)
スプレッド構文を使ってみる。
配列の要素を展開できる。
例を次に示す。
【JavaScript】URLフラグメント(fragmen)とハッシュ(hash)
URLにおいて、「#」より後ろの「fragment」をURLフラグメントと言う。
URLの「#」記号よりも後ろの部分のことを,URLのハッシュ(hash)という。
DOMの文脈だったり,JavaScriptでコーディングする場合は「ハッシュ」(URLのハッシュ)と俗に呼ぶ。
技術用語としての正式名称は「URLフラグメント(URL fragment)」と参考にしたwebサイトに書いてあるな。
それから、「#以降の文字列はサーバーには送られない」ことに注意する。
var url = "http://www.ora.com:80/goodparts/?q#fragment";
続きを読む 【JavaScript】正規表現の肯定先読みと否定先読み
JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ] ExternalLink P85~86には、肯定先読み「(?=)」と否定先読み「(?!)」は「良いパーツ」ではないと書いてある。P85~86には、肯定後読み「(?<=)」と否定後読み「(?<!)」が載っていない。
これってGood Partsが発売後に追加された機能なのか?
【Javascript】String.slice(start,end)
—JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ] ExternalLink P105 ここらから–
sliceメソッドはある文字列の一部をコピーした新しい文字列を生成する。startパラメータが負の値なら、string.lengthの値を加算した値が利用される。endパラーメータは省略可能であり、デフォルト値はstring.lengthである。endパラメータに負の値が指定された場合も、string.lengthの値が加算される。endパラメータの値は、必要な最後の文字の位置よりも1つ大きい位置を指定する。したがって、pの位置からn文字分の文字を取得したい場合は、string.slice(p,p+n)のように指定する。
—JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ] ExternalLink P105 ここまで–
文字列は0番目始まりのようだな。
JavaScript 正規表現\bと\B
正規表現 | 単語の先頭と単語の末尾にマッチする:\b \B (javadrive.jp) ExternalLink
続きを読む【XMLHttpRequest】getAllResponseHeaders()とgetResponseHeader()の戻り値【レスポンスヘッダー】
–XMLHttpRequest.getAllResponseHeaders() – Web API | MDN (mozilla.org) ExternalLinkから引用 ここから-
XMLHttpRequestのgetAllResponseHeaders()メソッドは、すべてのレスポンスヘッダーを CRLF で区切った文字列として返し、レスポンスを受信していない場合は null を返します。
–XMLHttpRequest.getAllResponseHeaders() – Web API | MDN (mozilla.org) ExternalLinkから引用 ここまで-
–XMLHttpRequest.getResponseHeader() – Web API | MDN (mozilla.org) ExternalLinkから引用する ここから-
XMLHttpRequest の getResponseHeader() メソッドは、特定のヘッダー値のテキストを含んだ文字列を返します。
同じ名前で複数のレスポンスヘッダーがあった場合、値はカンマと空白で区切って値を接続した単一の文字列として返されます。 getResponseHeader() メソッドは値を UTF バイト列として返します。
–XMLHttpRequest.getResponseHeader() – Web API | MDN (mozilla.org) ExternalLinkから引用する ここまで-
「同じ名前で複数のレスポンスヘッダーがあった場合」とあるが、「Wed, 18 Jan 2023 11:19:17 GMT」が「Wed」, 「18 Jan 2023 11:19:17 GMT」の2個あるので「,」で区切られるということかな?
次のような値が取得できた。
jQuery.ajax()
jQuery.ajax()の戻り値
jQuery.ajax()の戻り値はjqXHRオブジェクトである。
jqXHRオブジェクトに対してdoneメソッドとfailメソッドを使用して
サーバが返すデータ等を見ることができる。
done()メソッドの引数は成功時のコールバック関数であり、通常はデータが渡される。
一方、fail()メソッドの引数は失敗時のコールバック関数であり、通常はエラー情報が渡される。
jQuery.ajax([settings])のsettingsはAjaxリクエストを設定することができる。このsettingは省略可能な設定項目である。
jQueryのajax関係の非推奨メソッド
いまさらだが、下記のようになっている。
jQuery1.8で非推奨になったみたいだから、かなり時間が経っているな。
–$.ajax() | jQuery 1.9 日本語リファレンス | js STUDIO (studio-kingdom.com) ExternalLink から引用 ここから-
非推奨に関する注意: jqXHR.success()、jqXHR.error()、jqXHR.complete()コールバックは、 jQury1.8で非推奨になりました。 今後これら非推奨のコードが除去されることに備え、代わりのjqXHR.done()、 jqXHR.fail()、jqXHR.always()を使用するようにしてください。
–$.ajax() | jQuery 1.9 日本語リファレンス | js STUDIO (studio-kingdom.com) ExternalLink から引用 ここまで-
最近のコメント