JavaScript 文字列操作 新しいページはコチラ
提供: yonewiki
(→斜体文字 italic) |
(→文字列中の文字による分割(返却値は文字列配列) split) |
||
291行: | 291行: | ||
</yjavascript> | </yjavascript> | ||
− | === 斜体文字 | + | === 斜体文字 italics === |
− | *strData10. | + | *strData10.italics() |
− | + | 上記のように引数は設定できません。斜体文字になります。基本的には見ずらい形状になると考えていいと思いますが、一部英語フォントなんかではカッコよくなるやつもあります。センスが必要です。基本的に日本語が斜めになった場合は、目立つ以外の利点はないとおもっていますが、考え方はひとそれぞれでしょう。斜体が好きな人もいるかもしれません。自分は、たいてい嫌いですね。斜めにして読みにくくしたい!くらいの非常事態にしか使いたくないです。それか、分類のアイデアが枯渇して苦し紛れの装飾になったり、人から言われて、とか…ですね。ちなみに斜めにならないフォントを使っているブラウザ設定もあるので、その点まで考慮しておく必要はあるでしょう。 | |
サンプルスクリプト | サンプルスクリプト | ||
<syntaxhighlight lang="javascript" line start="1"> | <syntaxhighlight lang="javascript" line start="1"> | ||
− | strData10 = new String("文字の斜体化( | + | strData10 = new String("文字の斜体化(italics)"); |
− | document.write(strData10. | + | document.write(strData10.italics(), "</BR>"); |
</syntaxhighlight> | </syntaxhighlight> | ||
309行: | 309行: | ||
<yjavascript> | <yjavascript> | ||
− | strData10 = new String("文字の斜体化( | + | strData10 = new String("文字の斜体化(italics)"); |
− | document.write(strData10, "</BR>"); | + | document.write(strData10.italics(), "</BR>"); |
</yjavascript> | </yjavascript> | ||
=== 取り消し線 strike === | === 取り消し線 strike === | ||
+ | *strData11.strike() | ||
+ | |||
+ | |||
+ | 上記のように引数は設定できません。取り消し線が引かれます。文字のおおよそ中心あたりをとおるように線がひかれると思ってよいでしょう。どうしても、線の引かれる位置まで気にする場合は、別の方法を考えなければなりません。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData11 = new String("文字の取り消し線(strike)"); | ||
+ | |||
+ | document.write(strData11.strike(), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData11 = new String("文字の取り消し線(strike)"); | ||
+ | |||
+ | document.write(strData11.strike(), "</BR>"); | ||
+ | |||
+ | </yjavascript> | ||
+ | |||
=== 下付き文字 sub === | === 下付き文字 sub === | ||
+ | *strData12.sub() | ||
+ | |||
+ | |||
+ | 上記のように引数は設定できません。下付きの小さい文字になります。自分だったら文章の感情を表現する程度で使うかもしれませんが、面倒なのであまり使いませんね。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData12 = new String("文字の下付き(sub)"); | ||
+ | |||
+ | document.write(strData12,strData12.sub(), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData12 = new String("文字の下付き(sub)"); | ||
+ | |||
+ | document.write(strData12,strData12.sub(), "</BR>"); | ||
+ | |||
+ | </yjavascript> | ||
+ | |||
=== 上付き文字 sup === | === 上付き文字 sup === | ||
+ | *strData12.sup() | ||
+ | |||
+ | 上記のように引数は設定できません。上付きの小さい文字になります。引用とか注釈とか累乗とかの表現で使いますでしょうか。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData13 = new String("文字の上付き(sup)"); | ||
+ | |||
+ | document.write(strData13,strData13.sup(), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData13 = new String("文字の上付き(sup)"); | ||
+ | |||
+ | document.write(strData13,strData13.sup(), "</BR>"); | ||
+ | |||
+ | </yjavascript> | ||
+ | |||
+ | |||
+ | == '''文字列長さ(文字列変数長さ探索) length ''' == | ||
+ | *nLengthValue = strData14.length | ||
+ | |||
+ | 上記のように記述すると文字列の長さを取得できます。全角文字でも1文字だし、半角文字でも1文字です。混在していても、全角文字半角文字を個別にカウントして、その長さを返してくれます。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData14 = new String("文字数をcountできる .length"); | ||
+ | |||
+ | document.write(strData14, " ,文字数 = ", strData14.length, "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData14 = new String("文字数をcountできる .length"); | ||
+ | |||
+ | document.write(strData14, " ,文字数 = ", strData14.length, "</BR>"); | ||
+ | |||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字コード変換(1文字→ISO Latin-1コード) charCodeAt ''' == | ||
+ | 文字は文字コード表との対応によって1バイト文字なら8桁の2進数で表せる256文字(0番~255番)が表現できるように構成されていて、[https://ja.wikipedia.org/wiki/ISO/IEC_8859-1 ISO/IEC 8859-1(俗にLatin-1と呼ばれているモノ)]という国際標準文字コードでの対応表に基づいて変換を行うことができるメソッドです。ちなみにISO/IEC 8859-1とISO 8859-1とは同じ意味ですが、ISO 8859-1とISO-8859-1とWindows-1252とは別モノの文字コード体系を指します。 | ||
+ | |||
+ | |||
+ | *"@akairo_no_sora".charCodeAt(0) | ||
+ | |||
+ | |||
+ | 上記のように、引数は一つ設定できます。 | ||
+ | |||
+ | |||
+ | *第一引数:このメソッドの元の文字列に対して、ISO Latin-1に変換したい文字のポジション。ポジション先頭番号は0。 | ||
+ | |||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData15 = new String("@akairo_no_sora"); | ||
+ | |||
+ | document.write(strData15, " ,文字コード変換 ->"); | ||
+ | for(n = 0;n < strData15.length;n++){ | ||
+ | document.write(strData15.charCodeAt(n).toString(16), ", "); | ||
+ | } | ||
+ | document.write("</BR>"); | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData15 = new String("@akairo_no_sora"); | ||
+ | |||
+ | document.write(strData15, " ,文字コード変換 ->"); | ||
+ | for(n = 0;n < strData15.length;n++){ | ||
+ | document.write(strData15.charCodeAt(n).toString(16), ", "); | ||
+ | } | ||
+ | document.write("</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | |||
+ | 上記のようにfor文による繰り返し処理で、文字列すべてのコード変換ができます。aに相当する2番目、4番目そして、最後の文字のコード番号が一緒になっていることが確認できると思います。.toString(16)は文字列をn進数に変換するメソッドで、この場合nに16を割り当てているため、16進数に変換される仕組みです。 | ||
+ | |||
+ | == '''文字コード変換(ISO Latin-1コード→文字列) fromCharCode ''' == | ||
+ | 前の項目で実施したこととは逆のことをしようとするものです。複数の文字コードから文字列を生成することもできます。C++言語で言うところの静的メンバ関数のような使い方で、Stringオブジェクトそのものにぶらさがっている関数を呼び出して処理するような操作です。Stringオブジェクトの形をしたオブジェクト変数としての文字列を使わないし、独立した作業だからです。引数で文字コード値を示し、それを文字列化するというものです。以下のように利用します。 | ||
+ | |||
+ | |||
+ | *strData16 = String.fromCharCode(parseInt("0x40"), parseInt("0x61"), parseInt("0x6b"), parseInt("0x61"), parseInt("0x69"), parseInt("0x72"), parseInt("0x6f"), parseInt("0x5f"), parseInt("0x6e"), parseInt("0x6f"), parseInt("0x5f"), parseInt("0x73"), parseInt("0x6f"), parseInt("0x72"), parseInt("0x61")) | ||
+ | |||
+ | |||
+ | |||
+ | 上記のように、引数は複数をほぼ無限に設定できます。 | ||
+ | |||
+ | |||
+ | *第一引数:ISO Latin-1コードで文字列にしたいコード番号をカンマ区切りで記述。16進数を使いたい場合はparseInt("0x**",16)、8進数を使いたい場合は、parseInt("0****",8)、2進数の場合は、parseInt("********",2)という具合にします。基数記法が0xでは始まる16進数と0で始まる8進数の場合はparseIntの第二引数は省略できる場合があります。 | ||
+ | |||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData15 = new String(); | ||
+ | |||
+ | strData15 = String.fromCharCode(parseInt("0x40"), parseInt("0x61"), parseInt("0x6b"), parseInt("0x61"), parseInt("0x69"), parseInt("0x72"), parseInt("0x6f"), parseInt("0x5f"), parseInt("0x6e"), parseInt("0x6f"), parseInt("0x5f"), parseInt("0x73"), parseInt("0x6f"), parseInt("0x72"), parseInt("0x61")); | ||
+ | |||
+ | document.write(strData15, "</BR>"); | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData15 = new String(); | ||
+ | |||
+ | strData15 = String.fromCharCode(parseInt("0x40"), parseInt("0x61"), parseInt("0x6b"), parseInt("0x61"), parseInt("0x69"), parseInt("0x72"), parseInt("0x6f"), parseInt("0x5f"), parseInt("0x6e"), parseInt("0x6f"), parseInt("0x5f"), parseInt("0x73"), parseInt("0x6f"), parseInt("0x72"), parseInt("0x61")); | ||
+ | |||
+ | document.write(strData15, "</BR>"); | ||
+ | |||
+ | </yjavascript> | ||
+ | |||
+ | == '''大文字小文字変換 toLowerCase ''' == | ||
+ | アルファベット文字限定ですが、大文字を小文字に変換ができるメソッドです。以下のようにすると、オブジェクトが保持している文字列を小文字にしたものを取得できます。ただし、オブジェクトが保持しているそのものの文字列が小文字になるわけではありません。日本語のカタカナやひらがなの小文字には影響がありません。 | ||
+ | |||
+ | |||
+ | *strData16 = strData15.toLowerCase() | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData15 = new String("小文字に変換(CONVERT)"); | ||
+ | |||
+ | document.write(".toLowerCase() : ",strData15, " ,変換後 = ", strData15.toLowerCase(), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData15 = new String("小文字に変換(CONVERT)"); | ||
+ | |||
+ | document.write(".toLowerCase() : ",strData15, " ,変換後 = ", strData15.toLowerCase(), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''小文字大文字変換 toUpperCase ''' == | ||
+ | こちらもアルファベット文字限定ですが、小文字を大文字に変換ができるメソッドです。以下のようにすると、オブジェクトが保持している文字列を小文字にしたものを取得できます。細かいところも前の項目と動作が同じです。 | ||
+ | |||
+ | |||
+ | *strData17 = strData16.toUpperCase() | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData16 = new String("大文字に変換(convert)"); | ||
+ | |||
+ | document.write(".toUpperCase() : ",strData16, " ,変換後 = ", strData16.toUpperCase(), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData16 = new String("大文字に変換(convert)"); | ||
+ | |||
+ | document.write(".toUpperCase() : ",strData16, " ,変換後 = ", strData16.toUpperCase(), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列検索(表示コンテンツ内検索) find ''' == | ||
+ | これは凄い検索かも!表示コンテンツ内を検索する命令なんて、あまり聞いたことがない!けど、何に使うん?って思いがちですが、掲示板なんかで、記事検索システムを簡単に提供する場合なんかには便利かもしれません。今表示されている内容に対してなので、簡易的な検索に使うのかもしれません。縦に長い文書のシステムやらで検索してもらうのに便利かな?この文書の最初の方に麻薬というキーワードを使っていますので、そういうのも以下のようにして検索できます。IEではスクリプトエラーになりますので、むしろ動作するブラウザに絞って動くようにした方がよいかもしれません。Chromeでは動作します。なので、まだ解説してもいない方法を使ったサンプルを作ります。ここではfindって、こうやって使うんだとか、そういうことを知ってもらえればと思います。Chromeブラウザを使っている人は、あ、動かすとこうなるんだとか、そこまで確認してもらえます。検索した文字がハイライトされます。ちな、Stringオブジェクトとは、関係のない文字列検索です。このページで埋め込もうと思ったのですが、複雑なスクリプトはwikiシステムによる制限により組み込めないため別のページでサンプル動作を確かめてください。 | ||
+ | |||
+ | |||
+ | *bFindResult = find("麻薬",true,true) | ||
+ | |||
+ | |||
+ | :*第一引数:検索文字列 | ||
+ | :*第二引数:true か false | ||
+ | :::true:大文字小文字区別 | ||
+ | :::false:大文字小文字区別無し | ||
+ | :*第三引数: | ||
+ | :::true:上方向検索(最後尾→先頭) | ||
+ | :::false:下方向検索(先頭→最後尾) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | <HTML> | ||
+ | <HEAD> | ||
+ | <TITLE>JavaScript Array</TITLE> | ||
+ | </HEAD> | ||
+ | <BODY> | ||
+ | JavaScript Array<BR /> | ||
+ | <BR /> | ||
+ | java scriptは楽しい。まるで麻薬のようだ。<BR /> | ||
+ | あなたが落としたのは、<BR /> | ||
+ | このjava scriptか?<BR /> | ||
+ | それとも<BR /> | ||
+ | このvb scriptか?<BR /> | ||
+ | <BR /> | ||
+ | よろしい。正直者のあなたには、<BR /> | ||
+ | このperl scriptを差し上げよう。<BR /> | ||
+ | <BR /> | ||
+ | <BR /> | ||
+ | 全部、同じようなscript!<BR /> | ||
+ | <BR /> | ||
+ | <BR /> | ||
+ | java scriptは楽しい。まるで麻薬のようだ。<BR /> | ||
+ | <BR /> | ||
+ | find検索サンプル:<BR /> | ||
+ | <FORM NAME="find_sample_form"> | ||
+ | <INPUT TYPE="text" VALUE="麻薬" NAME="findword" ><BR /> | ||
+ | <INPUT TYPE="button" VALUE="find検索" onClick="funcFind()"><BR /> | ||
+ | </FORM> | ||
+ | <SCRIPT Language="JavaScript"> | ||
+ | <!-- | ||
+ | var getBrowser = function(){ | ||
+ | var ua = window.navigator.userAgent.toLowerCase(); | ||
+ | var ver = window.navigator.appVersion.toLowerCase(); | ||
+ | var name = ''; | ||
+ | |||
+ | if (ua.indexOf("msie") >= 0 || ua.indexOf('trident/7') >= 0){ | ||
+ | if (ver.indexOf("msie 6.") >= 0){ | ||
+ | name = 'msie6'; | ||
+ | } | ||
+ | else if (ver.indexOf("msie 7.") >= 0){ | ||
+ | name = 'msie7'; | ||
+ | } | ||
+ | else if (ver.indexOf("msie 8.") >= 0){ | ||
+ | name = 'msie8'; | ||
+ | } | ||
+ | else if (ver.indexOf("msie 9.") >= 0){ | ||
+ | name = 'msie9'; | ||
+ | } | ||
+ | else if (ver.indexOf("msie 10.") >= 0){ | ||
+ | name = 'msie10'; | ||
+ | } | ||
+ | else if(ua.indexOf('trident/7') >= 0){ | ||
+ | name = 'msie11'; | ||
+ | }else{ | ||
+ | name = 'ie6 以前 or ie11より後のversion'; | ||
+ | } | ||
+ | } | ||
+ | else if (ua.indexOf('chrome') >= 0){ | ||
+ | name = 'chrome'; | ||
+ | } | ||
+ | else if (ua.indexOf('safari') >= 0){ | ||
+ | name = 'safari'; | ||
+ | } | ||
+ | else if (ua.indexOf('opera') >= 0){ | ||
+ | name = 'opera'; | ||
+ | } | ||
+ | else if (ua.indexOf('firefox') >= 0){ | ||
+ | name = 'firefox'; | ||
+ | } | ||
+ | return name; | ||
+ | }; | ||
+ | |||
+ | function funcFind() | ||
+ | { | ||
+ | if(getBrowser().indexOf("ie") >= 0){ | ||
+ | alert("IEではfind関数は動作しません。このサンプルはchromeブラウザでのみ動作確認できます。"); | ||
+ | } | ||
+ | else if(getBrowser().indexOf("chrome") >= 0){ | ||
+ | find(document.find_sample_form.findword.value); | ||
+ | } | ||
+ | else{ | ||
+ | alert("chromeブラウザ以外ではfind関数の動作を確認できていません。このサンプルはchromeブラウザでのみ動作確認できます。"); | ||
+ | } | ||
+ | } | ||
+ | --> | ||
+ | </SCRIPT> | ||
+ | </BODY> | ||
+ | </HTML> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 実質、69行目だけがfind関数を使っているところです。 | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | [[Media:JavaScript String 02 find.html|サンプル実行結果]] | ||
+ | |||
+ | == '''文字列検索(文字列変数先頭検索) indexOf ''' == | ||
+ | *nPosition = strData17.indexOf("麻薬",0) | ||
+ | |||
+ | |||
+ | 上記のようにして利用します。 | ||
+ | |||
+ | |||
+ | :*第一引数:検索文字列 | ||
+ | :*第二引数:検索開始位置 0なら先頭。※省略も可能(省略時は0が適用) | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData17 = new String("文字列検索(indexOf)"); | ||
+ | |||
+ | document.write(".indexOf() : ",strData17, " ,検索位置 = ", strData17.indexOf("index",0), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData17 = new String("文字列検索(indexOf)"); | ||
+ | |||
+ | document.write(".indexOf() : ",strData17, " ,検索位置 = ", strData17.indexOf("index",0), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列検索(文字列変数後方検索) lastIndexOf ''' == | ||
+ | *nPosition = strData17.lastIndexOf("麻薬", strData18.length - 1) | ||
+ | |||
+ | |||
+ | 上記のようにして利用します。 | ||
+ | |||
+ | |||
+ | :*第一引数:検索文字列 | ||
+ | :*第二引数:検索開始位置 0なら先頭。※省略も可能(省略時は最後尾が適用, xxx.length - 1と同じことです) | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData18 = new String("文字列検索(lastIndexOf)-last"); | ||
+ | |||
+ | document.write(".indexOf() : ",strData18, " ,検索位置 = ", strData18.lastIndexOf("last", strData18.length - 1), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData18 = new String("文字列検索(lastIndexOf)-last"); | ||
+ | |||
+ | document.write(".lastIndexOf() : ",strData18, " ,検索位置 = ", strData18.lastIndexOf("last"), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列正規表現検索(返却値が一致文字列) match ''' == | ||
+ | 正規表現とは?[https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE 本家Wikipediaの正規表現の記事]に詳細な解説は譲りたいですが、要するところに高度な検索手法と思えばよいと思います。更にWikipediaの解説をかいつまむと、数学者によって開発されたパターマッチモデルをテキスト検索向けとしてトンプソンという人が検索機能を開発して、UNIXのエディタや特定のプログラミング言語にとりこまれ、JAVA Scriptにも適用され、JAVA Scriptを標準化するECMA Scriptにおいても、正規表現検索が整備されたという流れになっています。パターンマッチングの解説については、[[正規表現 JAVA Script|正規表現 JAVA Script用の記事]]に記述します。 | ||
+ | |||
+ | *strResult = strData19.match(/regular expression/) | ||
+ | |||
+ | |||
+ | 上記のようにして利用します。 | ||
+ | |||
+ | |||
+ | :*第一引数:正規表現パターンマッチ検索文字列 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData19 = new String("正規表現文字列検索(regular expression)"); | ||
+ | |||
+ | document.write(".match() : ",strData19, " ,検索結果 = ", strData19.match(/regular expression/), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData19 = new String("正規表現文字列検索(regular expression)"); | ||
+ | |||
+ | document.write(".match() : ",strData19, " ,検索結果 = ", strData19.match(/regular expression/), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列正規表現検索(返却値が文字位置) search ''' == | ||
+ | 先の項目では、正規表現検索で一致する文字があるか探索し、一致した場合には、その一致した文字列を返却するメソッドとなっていましたが、このsearchメソッドでは、一致した文字の位置を数値で返却するメソッドになっています。パターンマッチングの解説については、[[正規表現 JAVA Script|正規表現 JAVA Script用の記事]]を参照して下さい。 | ||
+ | |||
+ | |||
+ | *nPosition = strData20.search(/regular expression/) | ||
+ | |||
+ | |||
+ | 上記のようにして利用します。 | ||
+ | |||
+ | |||
+ | :*第一引数:正規表現パターンマッチ検索文字列 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData20 = new String("正規表現文字列検索(regular expression)"); | ||
+ | |||
+ | document.write(".search() : ",strData20, " ,検索結果 = ", strData20.search(/regular expression/), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData20 = new String("正規表現文字列検索(regular expression)"); | ||
+ | |||
+ | document.write(".search() : ",strData20, " ,検索結果 = ", strData20.search(/regular expression/), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列正規表現置換(返却値は置換後文字列) replace ''' == | ||
+ | 正規表現検索で一致する文字があるか探索し、一致した場合には、その一致した文字列を変換文字列で置換した文字列を返却するメソッドとなっています、パターンマッチングの解説については、[[正規表現 JAVA Script|正規表現 JAVA Script用の記事]]を参照して下さい。 | ||
+ | |||
+ | |||
+ | *strData = strData21.replace(/regular expression/,"Regular Expression") | ||
+ | |||
+ | |||
+ | 上記のようにして利用します。 | ||
+ | |||
+ | |||
+ | :*第一引数:正規表現パターンマッチ検索文字列 | ||
+ | :*第二引数:置換文字列 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData21 = new String("正規表現文字列検索(regular expression)"); | ||
+ | |||
+ | document.write(".replace() : ",strData21, " ,検索結果 = ", strData21.replace(/regular expression/,"Regular Expression"), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData21 = new String("正規表現文字列検索(regular expression)"); | ||
+ | |||
+ | document.write(".replace() : ",strData21, " ,検索結果 = ", strData21.replace(/regular expression/,"Regular Expression"), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列位置による抽出(返却値は抽出文字) charAt ''' == | ||
+ | 文字列オブジェクトに対して、charAtメソッドの引数に取り出したい文字のポジションを指定すると、その一文字が取得できます。 | ||
+ | |||
+ | *strData = strData22.charAt(1) | ||
+ | |||
+ | |||
+ | :*第一引数:取り出したい文字の位置番号 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData22 = new String("文字列位置による抽出(charAt)"); | ||
+ | |||
+ | document.write(".charAt() : ",strData22, " ,検索結果 = ", strData22.charAt(2), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData22 = new String("文字列位置による抽出(charAt)"); | ||
+ | |||
+ | document.write(".charAt() : ",strData22, " ,検索結果 = ", strData22.charAt(2), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列位置区間(後方位置指定可能)による抽出(返却値は抽出文字列) slice ''' == | ||
+ | 文字列オブジェクトに対して、sliceメソッドの引数に取り出したい文字の開始終了ポジションを指定すると、その抽出文字列が取得できます。 | ||
+ | |||
+ | *strData = strData23.slice(8,10) | ||
+ | |||
+ | |||
+ | :*第一引数:取り出したい文字の開始位置番号 | ||
+ | :*第二引数:取り出したい文字の終了位置番号、指定した文字位置は含まれないので、実際には抜き出し終了文字の次の文字位置を指定します。不数を指定すると末尾からの文字位置番号を指定できます。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData23 = new String("文字列位置による抽出(slice)"); | ||
+ | |||
+ | document.write(".slice() : ",strData23, " ,検索結果 = ", strData23.slice(8,10), "</BR>"); | ||
+ | document.write(".slice() : ",strData23, " ,検索結果 = ", strData23.slice(8,-1), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData23 = new String("文字列位置による抽出(slice)"); | ||
+ | |||
+ | document.write(".slice() : ",strData23, " ,検索結果 = ", strData23.slice(8,10), "</BR>"); | ||
+ | document.write(".slice() : ",strData23, " ,検索結果 = ", strData23.slice(8,-1), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列位置区間による抽出(返却値は抽出文字列) substring ''' == | ||
+ | 文字列オブジェクトに対して、substringメソッドの引数に取り出したい文字の開始終了ポジションを指定すると、その抽出文字列が取得できます。 | ||
+ | |||
+ | *strData = strData23.substring(8,10) | ||
+ | |||
+ | |||
+ | :*第一引数:取り出したい文字の開始位置番号 | ||
+ | :*第二引数:取り出したい文字の終了位置番号、指定した文字位置は含まれないので、実際には抜き出し終了文字の次の文字位置を指定します。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData24 = new String("文字列位置による抽出(substring)"); | ||
+ | |||
+ | document.write(".substring() : ",strData24, " ,検索結果 = ", strData24.substring(8,10), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData24 = new String("文字列位置による抽出(substring)"); | ||
+ | |||
+ | document.write(".substring() : ",strData24, " ,検索結果 = ", strData24.substring(8,10), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列位置と文字数による抽出(返却値は抽出文字列) substr ''' == | ||
+ | 文字列オブジェクトに対して、subメソッドの引数に取り出したい文字の開始ポジションとその文字数を指定すると、その抽出文字列が取得できます。 | ||
+ | |||
+ | *strData = strData25.substr(3,7) | ||
+ | |||
+ | |||
+ | :*第一引数:取り出したい文字の開始位置番号 | ||
+ | :*第二引数:取り出したい文字数。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData25 = new String("文字列位置による抽出(substr)"); | ||
+ | |||
+ | document.write(".substring() : ",strData25, " ,検索結果 = ", strData25.substr(3,7), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData25 = new String("文字列位置による抽出(substr)"); | ||
+ | |||
+ | document.write(".substring() : ",strData25, " ,検索結果 = ", strData25.substr(3,7), "</BR>"); | ||
+ | </yjavascript> | ||
+ | |||
+ | == '''文字列中の文字による分割(返却値は文字列配列) split ''' == | ||
+ | 文字列オブジェクトに対して、splitメソッドの引数に分割したい文字Token(トークン:つまりは分割の記号とか文字列)を指定すると、その分割文字で分割した文字列が配列の要素となって取得できます。 | ||
+ | |||
+ | *strData = strData26.split("-_-",3) | ||
+ | |||
+ | |||
+ | :*第一引数:分割のトークンにしたい文字列 | ||
+ | :*第二引数:取り出したい配列数(上限)。 | ||
+ | |||
+ | |||
+ | サンプルスクリプト | ||
+ | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | strData26 = new String("文字列位置による抽出(split)-_-文字列1-_-文字列2-_-文字列3"); | ||
+ | |||
+ | document.write(".split() : ",strData26, " ,検索結果 = ", strData26.split("-_-",3), "</BR>"); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | 表示結果: | ||
+ | |||
+ | <yjavascript> | ||
+ | strData26 = new String("文字列位置による抽出(split)-_-文字列1-_-文字列2-_-文字列3"); | ||
+ | |||
+ | document.write(".split() : ",strData26, " ,検索結果 = ", strData26.split("-_-",3), "</BR>"); | ||
+ | </yjavascript> | ||
[[JAVA Script#リファレンス]]に戻る。 | [[JAVA Script#リファレンス]]に戻る。 |