私は最近、フロントエンドのインターン採用のためのいくつかの筆記試験に参加しましたが、Qunar.com の筆記試験問題、淘宝網の筆記試験問題など、多くの筆記試験問題で文字列処理がテストされることがわかりました。筆記試験を頻繁に受けたり、受けたことがある人なら、私と同じように、フロントエンドの採用プロセスで最も一般的な質問の種類の 1 つが文字列処理であることに気づくと思います。
これらの質問には 1 つの特徴があります。それを知っているかどうかではなく、XX マニュアルや XX ガイド、Baidu や Google を借りずに、より簡潔に使用できるかどうかをテストします。答えを以下に記入してください。方法。
残念なことに、多くの開発者は、もちろん私もその一人ですが、頻繁に使用される多くの文字列処理関数の使い方をしっかりと覚えておらず、常に XX マニュアルや XX ガイド、あるいは Baidu Google に頼らなければなりません。
この結果、これらの非常に重要な基本知識が十分ではないため、これらの質問に遭遇した場合、N レベルのネストされた for ループを使用して 1 つずつ調べる必要があります。
この種の質問をするときに for ループを多用していることに気付いた場合は、書き方が間違っている可能性があるので注意してください。これらのことを過小評価しないでください。これらは仕事を見つけることや日々の成長に大きな役割を果たす可能性があります。
はい、これ以上話さないで、一つずつまとめましょう。いくつかの漏れがあることは避けられませんが、見つけた場合は、お気軽に追加するか、プライベートメッセージを送信してください。
1. 文字列変換
文字列変換は最も基本的な要件であり、次の 3 つの方法のいずれかを使用して変換できます。
var num= 19; // 19 var myStr = num.toString(); // "19"
var num= 19; // 19 var myStr = String(num); // "19"
var num= 19; // 19 var myStr = "" +num; // "19"
2. 文字列の分割
文字列の分割とは、文字列を複数の文字列に分割することです。JavaScript には、次のような非常に便利な関数が用意されています。
var myStr = "I,Love,You,Do,you,love,me"; var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"]; var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];
文字列の長さは開発でよく使用されます。次のように非常に簡単です。
var myStr = "I,Love,You,Do,you,love,me"; var myStrLength = myStr.length; //25
多くの人は、これらの JavaScript の組み込みメソッドを忘れたり、その具体的な使用法を忘れたりするため、質問を行うときに for ループをネストする必要があります。
最初の関数:indexOf() は、文字列の先頭から検索し、見つからない場合は、対応する座標を返します。以下のように:
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.indexOf("you"); // 7 ,基于0开始,找不到返回-1
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.lastIndexOf("you"); // 14
5. 文字列の置換
一般的な質問では、文字列を検索して独自の文字列に置き換えるよう求められることがよくあります。
var myStr = "I,love,you,Do,you,love,me"; var replacedStr = myStr.replace("love","hate");//"I,hate,you,Do,you,love,me"
さらに詳しい説明については、以下を参照してください。
var myStr = "I,love,you,Do,you,love,me"; var replacedStr = myStr.replace(/love/g,"hate"); //"I,hate,you,Do,you,hate,me"
6. 指定された位置の文字またはその文字エンコード値を検索します
特定の位置にある文字を検索するには、次の関数を使用できます:
同様に、その兄弟関数の 1 つは、次のような、対応する位置の文字エンコーディング値を検索することです。
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charAt(8);// "o",同样从0开始
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charCodeAt(8); //111
同様に、JavaScript には次のような関連関数も付属しています。
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
concat() 関数は複数のパラメーターを持ち、複数の文字列を渡し、複数の文字列を結合できます。
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
文字列から抽出して切り取るには、次の 3 つの方法があります。
最初の方法は、slice(): を使用することです。
2 番目に、substring():
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.slice(1,5);//",lov"
3 番目の方法は、substr():
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substring(1,5); //",lov"
最初と 2 番目のメソッドとは異なり、上記の結果に示されているように、substr() の 2 番目のパラメーターはインターセプトされた文字列の最大長を表します。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substr(1,5); //",love"
大文字または小文字の文字列に変換するために一般的に使用される関数は次のとおりです:
10. 文字列マッチング
var myStr = "I,love,you,Do,you,love,me"; var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me"; var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
如你所见,match()函数在字符串上调用,并且接受一个正则的参数。来看看第二个例子,使用exec()函数:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = pattern .exec(myStr);//["love"] console.log(result .index);//2 console.log(result.input );//I,love,you,Do,you,love,me
简单吧,仅仅是把正则和字符串换了个位置,即exec()函数是在正则上调用,传递字符串的参数。对于上面两个方法,匹配的结果都是返回第一个匹配成功的字符串,如果匹配失败则返回null.
再来看一个类似的方法search(),如:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = myStr.search(pattern);//2
仅返回查到的匹配的下标,如果匹配失败则返回-1.
11、字符串比较
比较两个字符串,比较是规则是按照字母表顺序比较的,如:
var myStr = "chicken"; var myStrTwo = "egg"; var first = myStr.localeCompare(myStrTwo); // -1 first = myStr.localeCompare("chicken"); // 0 first = myStr.localeCompare("apple"); // 1
12、举例
最后我们来看一道前端笔试题,去哪儿网的,相信很多孩子都做到过这个题了。题目:写一个getSuffix函数,用于获得输入参数的后缀名,例如输入abcd.txt,返回txt。附上我的答案:
function getSuffix(file){ return file.slice(file.lastIndexOf(".") + 1,file.length); }
结束语
相信JavaScript中字符串操作的函数应该不止这几个,但是上面列的这些应该都是非常常用的。如果有哪些需要补充的,欢迎补充!希望看到这些以后,再面对字符串的笔试面试题你能非常从容的面对。