文字列関係

文字列の出力(write)

文字列の分割結合

1

【書式】
文字列.split(区切り文字,上限個数);
文字列.concat(追加文字列);
文字列 + 追加文字列;

文字列の部分切り出し(slice)

文字列.slice(開始位置,字数);

指定長の文字列切り出し(substr)

文字列.substr(開始位置,長さ);

開始位置は最初を0番目と数える数値で指定する。長さを指定しない場合は文字列の最後まで。

例:

指定位置の文字列切り出し(substring)

切り出し範囲を切り出し長ではなく、終了位置で指定する点がsubstrと異なる。

文字列.substring(開始位置,終了位置);

文字列の検索(indexOf)

indexOf は文字列を検索し、最初に見つかった位置(先頭が0文字目)を返す。見つからなかった場合は -1 を返す[25]

【書式】
検索対象文字列.indexOf(検索する文字列,検索開始位置)
【返り値】
検索する文字列が見つかった場合→見つかった位置(最初が0)
not→-1
【例1】
<script type="text/javascript"><!--
document.write('<p>このページのURLは '+location.href+' です。</p>'+"\n")
document.write('<p>URLの中で最初の / は '+location.href.indexOf('/',0)+' 文字目です。</p>'+"\n")
//--></script>
【結果1】

返り値が -1 でなければどこかに文字列があったことになるので、これを利用して文字列の検知に使うこともできる。

【例2】User Agent値に「Mac」が含まれていたら「<param name="newt" value="true"/>」を出力
<script type="text/javascript"><!--
if(navigator.userAgent.indexOf("Mac") != -1 ){
  document.write('<param name="newt" value="true"/>');
}
//--></script>

正規表現検索(match)

match は文字列から正規表現で文字列を検索し、あったかどうかを返す[2][3 - 正規表現]

【書式】
検索対象文字列.match(/正規表現/フラグ)
【返り値】
正規表現に一致する文字列が見つかった場合→true
not→false
正規表現
正規表現参照。
フラグ
下記フラグが利用可能。複数指定可能。
  • i: 大文字小文字を区別しない。
  • g: パターンに一致した部分を全て拾って配列として結果を返す(この指定がないと、最初に一致した部分だけを文字列として返す)。
  • m: 改行文字があっても検索を継続する(複数行に対して検索を行う)。

【コード】

<script type="text/javascript"><!--
if (location.hostname.match(/\.org$/)) {
  document.write('ホスト名(' + location.hostname + ')は org で終わっています。');
} else {
  document.write('ホスト名(' + location.hostname + ')は org では終わっていません。');
}
//-->
</script>

【出力】

【関連項目】

文字列置換(replace)

【例1】
<script type="text/javascript"><!--
str = 'www.example.com';
ptn = /www./;
rep = '';
document.write('置換前:' + str + '<br/>');
document.write('検索パターン:' + ptn + '<br/>');
document.write('置換パターン:' + rep + '<br/>');
document.write('置換後:' + str.replace(ptn,rep) + '<br/>');
//-->
</script>

【出力1】


【例2】※にはさまれた文字を取り出す
<script type="text/javascript"><!--
str = 'hoge※foo※hoge';
ptn = /.*?※(.*?)※.*/;
rep = '$1';
document.write('置換前:' + str + '<br/>');
document.write('検索パターン:' + ptn + '<br/>');
document.write('置換パターン:' + rep + '<br/>');
document.write('置換後:' + str.replace(ptn,rep) + '<br/>');
//-->
</script>

【出力2】


前後の空白を除去

文字列の前後にある空白を除去するのに、最近の環境であれば 文字列.trim が使えるが、古い環境での互換性を考えるなら replace文字列.replace(/^¥s+|¥s+$/g,'') とするのがいいらしい。あるいは trim 関数を定義しておく[4]