>>>>>文字列

8254 ワード

文字列は、単一引用符または二重引用符に格納されるゼロまたは複数の文字です.
'abc'
"abc"

単一引用符文字列の内部には、二重引用符を使用できます.二重引用符文字列の内部には、単一引用符を使用できます.
'key="value"'
"It's a long journey"

マルチラインとエスケープ
単一引用符文字列の内部で、単一引用符(または、二重引用符文字列の内部で、二重引用符)を使用する場合は、内部の単一引用符(または二重引用符)の前に逆スラッシュを付けて、エスケープする必要があります.
'Did she say \'Hello\'?'
// "Did she say 'Hello'?"

"Did she say \"Hello\"?"
// "Did she say "Hello"?"

文字列のデフォルトは1行にしか書けません.複数行に分割するとエラーが表示されます.
'a
b
c'
// SyntaxError: Unexpected token ILLEGAL

上のコードは1つの文字列を3行に分割し、JavaScriptはエラーを報告します.
長い文字列を複数の行に分割する必要がある場合は、各行の末尾にスラッシュを使用します.
var longString = "Long \
long \
long \
string";

longString
// "Long long long string"

上のコードは、スラッシュを付けた後、元の行に書かれた文字列を複数の行に分けることができ、同じ行に書かれたのと同じ効果が得られることを示しています.注意:反スラッシュの後ろには改行文字が必要で、スペースなどの他の文字は使用できません.そうしないと、エラーが表示されます.
接続演算子(+)は、複数の行文字列を接続して、複数の行文字列をシミュレートできます.
var longString = 'Long '
  + 'long '
  + 'long '
  + 'string';

文字列の通常の内容にスラッシュを含める必要がある場合は、スラッシュの前にスラッシュを追加して、自身をエスケープする必要があります.
"Prev\Next"//"Prev\Next"
一般的な文字列メソッド
String.prototype.charAt()
charAtメソッドは、指定された位置の文字を返し、パラメータは0から番号付けされた位置です.
var s = new String('abc');

s.charAt(1) // "b"
s.charAt(s.length - 1) // "c"

String.prototype.charCodeAt()
charCodeAtメソッドは、String.fromCharCode()の逆動作に相当する所定の位置文字のUnicode符号点(10進数表現)を返します.
'abc'.charCodeAt(1); // 98

'   '.charCodeAt(0);//21313

'0'.charCodeAt(0);//48
'9'.charCodeAt(0);//57

'a'.charCodeAt(0); //97
'z'.charCodeAt(0); //122

'A'.charCodeAt(0);//65
'Z'.charCodeAt(0);//90

'0-9'に対応する符号化は'48-57'であることが分かった.
'a-z'に対応する符号化は'97-122'である
'A-Z'に対応する符号化は'65-90'である
この特性を利用して厳格なユーザー入力を検出することができます
たとえば、ユーザーが入力した文字が数値であるかどうかを検出します.
function detectNum(str){
    var n;
    for(var i=0; i57){
            return false
        }

    }
    return true;
}

detectNum('12345');//ture
detectNum('  123');//false       ,  isNaN      

String.fromCharCode()
Stringオブジェクトが提供する静的メソッド(オブジェクトインスタンスではなくオブジェクト自体で定義されるメソッド)は、主にfromCharCode()です.この方法のパラメータは一連のUnicodeコード点であり,対応する文字列を返す.
String.fromCharCode(104, 101, 108, 108, 111)
// "hello"

0~10000文字列の表示
var str = '';
for(var i=0; i<10000; i++){
  str+=String.fromCharCode(i);
}

document.body.innerHTML = str;

文字列を暗号化したり、
他の人に入力を見せたくない場合は、パスワードなどの文字列を暗号化することができます.



...
var input = document.getElementsByTagName('input')[0];

var encryptBtn = document.getElementsByTagName('input')[1];

var decryptBtn = document.getElementsByTagName('input')[2];
var div = document.getElementsByTagName('div')[0];

//  
encryptBtn.onclick = function(){
  var str = input.value;
  var newStr = '';//        
  for(var i=0; i

String.prototype.indexOf()
この2つの方法は、1つの文字列が別の文字列にある位置を決定するために使用され、一致の開始位置を表す整数を返します.
1つ見つけたら検索を停止します.
-1を返すと、一致しません.
両者の違いは,indexOfが文字列ヘッダからマッチングを開始し,lastIndexOfが末尾からマッチングを開始することである.
'hello world'.indexOf('o') // 4

'JavaScript'.indexOf('script') // -1

'hello world'.lastIndexOf('o') // 7

また、indexOfメソッドの場合、2番目のパラメータは、その位置から後方検索を開始することを示す2番目のパラメータを受け入れることもできます.
'hello world'.indexOf('o', 5) // 7            (     )

例:グローバル検索
「十月宿」を含むすべての場所を探し出す
var str = '             (    :         ),      IT      。         2008 ';
var s='   '
var i=0;


while(str.indexOf(s, i)!== -1){
    var index = str.indexOf(s, i);
    alert(index);
    i=index+s.length;
}

substr(start, length) substring(start, end) slice(start, end)
サブストリングの取得
substringとsliceはわずかな違いしかありません
sliceのパラメータは負数をサポートし、substringパラメータは負数を0として処理する.
'hello world'.slice(-3, -1);//rl     3     1 

'hello world'.substirng(-3, -1);//''

私たちはsliceを使えばいいです.
例:文字列の切り取り

javaScript , Web , HTML javaScript , Web , HTML …… >>

p {
    border: 10px solid #ccc;
    background: #FFC;
    width: 400px;
    padding: 20px;
    font-size: 16px;
    font-family:     ;
    margin: 40px auto 0;
}
var a = document.getElementsByTagName('a')[0];
var span = document.getElementsByTagName('span')[0];
var str = span.innerHTML;
var onOff = false;
a.onclick = function(){
    if(!onOff){
        span.innerHTML = str.slice(0, 18);
        a.innerHTML = '>>  ';
    }
    else{
        span.innerHTML = str;
        a.innerHTML = '>>  ';
    }

    onOff = !onOff;
}

String.prototype.split()
splitメソッドは、所定の規則に従って文字列を分割し、分割されたサブ文字列からなる配列を返します.
'a|b|c'.split('|') // ["a", "b", "c"]

分割ルールが空の文字列の場合、返される配列のメンバーは元の文字列の各文字です.
'abc'.split('') // ["a",  "b",  "c"]

分割ルールを満たす2つの部分が隣接している(すなわち、中央に他の文字がない)場合、返される配列には空の文字列があります.
'a||c'.split('|') // ['a', '', 'c']

分割ルールを満たす部分が文字列の先頭または末尾(つまり、その前または後ろに他の文字がない)にある場合、返される配列の最初のメンバーまたは最後のメンバーは空の文字列です.
'|b|c'.split('|') // ["", "b", "c"]
'a|b|'.split('|') // ["a", "b", ""]

splitメソッドはまた、2番目のパラメータを受け入れ、返される配列の最大メンバー数を制限することもできます.
'a|b|c'.split('|', 0) // []
'a|b|c'.split('|', 1) // ["a"]
'a|b|c'.split('|', 2) // ["a", "b"]
'a|b|c'.split('|', 3) // ["a", "b", "c"]
'a|b|c'.split('|', 4) // ["a", "b", "c"]

splitに対応する配列にはjoin法があり,spliteの逆操作と見なすことができる.
joinメソッドはパラメータを区切り記号として、すべての配列メンバーを文字列として返します.パラメータが指定されていない場合は、デフォルトでカンマで区切られます.
var a = [1, 2, 3, 4];

a.join(' ') // '1 2 3 4'
a.join(' | ') // "1 | 2 | 3 | 4"
a.join() // "1,2,3,4"

例:検索してハイライト


, 8 19 , 2600 。 , 9900 …… , , 。 , 。 , , , 、 。 , “ ”、“ ” , , , “ ”、“ ”、“ ”、“ ”、“ ”、“ “、“ ” 。

p {
    border: 10px solid #ccc;
    background: #FFC;
    width: 400px;
    padding: 20px;
    font-size: 16px;
    font-family:     ;
}

span {
    background: yellow;
}
var input = document.getElementsByTagName('input')[0];
var btn = document.getElementsByTagName('input')[1];
var p = document.getElementsByTagName('p')[0];
var str = p.innerHTML;
btn.onclick = function () {
    var searchText = input.value;
    var arr = str.split(searchText);
    p.innerHTML = arr.join(''+searchText+'');
}