Ich habe kürzlich an mehreren schriftlichen Tests für die Rekrutierung von Front-End-Praktikanten teilgenommen und festgestellt, dass viele schriftliche Testfragen die String-Verarbeitung testen, wie z. B. schriftliche Testfragen von Qunar.com, schriftliche Testfragen von Taobao usw. Wenn Sie häufig an schriftlichen Prüfungen teilnehmen oder dort schon einmal dabei waren, werden Sie, wie ich, feststellen, dass die Verarbeitung von Zeichenfolgen einer der häufigsten Fragetypen im Front-End-Rekrutierungsprozess ist.
Diese Fragen haben ein Merkmal: Betrachten Sie es aus der Sicht des Prüfers. Es prüft nicht, ob Sie es wissen, sondern ob Sie es prägnanter verwenden können, ohne das XX-Handbuch oder den XX-Leitfaden oder Baidu und Google auszuleihen Weg.
Leider können sich viele Entwickler, darunter natürlich auch ich, nicht genau an die Verwendung vieler häufig verwendeter String-Verarbeitungsfunktionen erinnern und müssen sich immer an das XX-Handbuch oder den XX-Leitfaden wenden, um Hilfe zu erhalten.
Das Ergebnis ist, dass diese sehr wichtigen Grundkenntnisse nicht stark genug sind. Wenn Sie auf diese Fragen stoßen, müssen Sie verschachtelte For-Schleifen der N-Ebene verwenden, um sie einzeln zu durchlaufen.
Dies ist ein Signal. Wenn Sie feststellen, dass Sie bei dieser Art von Fragen zu viele For-Schleifen verwenden, dann achten Sie sehr wahrscheinlich darauf, dass Sie falsch geschrieben haben. Unterschätzen Sie diese Dinge nicht, sie können eine große Rolle bei der Jobsuche und der täglichen Entwicklung spielen.
Okay, nicht mehr reden, lasst uns sie einzeln zusammenfassen. Es ist unvermeidlich, dass es einige Auslassungen gibt. Wenn Sie diese finden, können Sie diese gerne hinzufügen oder eine private Nachricht senden.
1. String-Konvertierung
Die String-Konvertierung ist die grundlegendste Voraussetzung und Arbeit. Sie können jede Art von Daten in einen String konvertieren. Sie können eine der folgenden drei Methoden verwenden:
var num= 19; // 19 var myStr = num.toString(); // "19"
Sie können dies auch tun:
var num= 19; // 19 var myStr = String(num); // "19"
Oder noch einfacher:
var num= 19; // 19 var myStr = "" +num; // "19"
2. String-Segmentierung
String-Splitting bedeutet, einen String in mehrere Strings aufzuteilen. JavaScript bietet uns eine sehr praktische Funktion, wie zum Beispiel:
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"];
Der zweite Parameter von split() gibt die maximale Länge des zurückgegebenen String-Arrays an.
3. Ermitteln Sie die Stringlänge
Die Zeichenfolgenlänge wird häufig in der Entwicklung verwendet. Es ist ganz einfach wie folgt:
var myStr = "I,Love,You,Do,you,love,me"; var myStrLength = myStr.length; //25
4. Teilzeichenfolge abfragen
Viele Leute vergessen die integrierten Methoden dieser JavaScript-Methoden oder vergessen deren spezifische Verwendung, was dazu führt, dass beim Beantworten der Fragen eine for-Schleife eingebettet werden muss.
Die erste Funktion: indexOf(), sie sucht vom Anfang der Zeichenfolge und gibt die entsprechenden Koordinaten zurück, wenn sie nicht gefunden werden, gibt sie -1 zurück. Wie folgt:
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.indexOf("you"); // 7 ,基于0开始,找不到返回-1
Die zweite Funktion: lastIndexOf(), sie sucht vom Ende der Zeichenfolge und gibt die entsprechenden Koordinaten zurück, wenn sie nicht gefunden werden, gibt sie -1 zurück. Wie folgt:
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.lastIndexOf("you"); // 14
Die beiden oben genannten Funktionen erhalten außerdem einen zweiten optionalen Parameter, der die Startposition der Suche angibt.
5. Saitenaustausch
Das bloße Finden einer Zeichenfolge sollte nicht aufhören. Bei allgemeinen Fragen werden Sie oft gebeten, diese zu finden und durch Ihre eigene Zeichenfolge zu ersetzen, zum Beispiel:
var myStr = "I,love,you,Do,you,love,me"; var replacedStr = myStr.replace("love","hate");//"I,hate,you,Do,you,love,me"
Standardmäßig wird nur das erste gefundene ersetzt. Wenn Sie es global ersetzen möchten, müssen Sie ein reguläres globales Flag setzen, wie zum Beispiel:
var myStr = "I,love,you,Do,you,love,me"; var replacedStr = myStr.replace(/love/g,"hate"); //"I,hate,you,Do,you,hate,me"
Ausführlichere Erläuterungen finden Sie unter: http://www.w3school.com.cn/jsref/jsref_replace.asp
6. Finden Sie das Zeichen an einer bestimmten Position oder seinen Zeichenkodierungswert
Um ein Zeichen an einer bestimmten Position zu finden, können Sie die folgende Funktion verwenden:
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charAt(8);// "o",同样从0开始
In ähnlicher Weise besteht eine seiner Geschwisterfunktionen darin, den Zeichenkodierungswert der entsprechenden Position zu ermitteln, z. B.:
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charCodeAt(8); //111
7. String-Verkettung
Die String-Verkettung kann so einfach sein wie die Verwendung eines Additionsoperators, wie zum Beispiel:
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
In ähnlicher Weise verfügt JavaScript auch über verwandte Funktionen, wie zum Beispiel:
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
Die Funktion concat() kann mehrere Parameter haben, mehrere Zeichenfolgen übergeben und mehrere Zeichenfolgen verbinden.
8. Schneiden und Herausziehen der Saite
Es gibt drei Möglichkeiten, Strings zu extrahieren und auszuschneiden, zum Beispiel:
Die erste Methode ist die Verwendung von Slice():
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.slice(1,5);//",lov"
Zweitens verwenden Sie substring():
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substring(1,5); //",lov"
Die dritte Methode ist die Verwendung von substr():
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substr(1,5); //",love"
Im Gegensatz zur ersten und zweiten Methode stellt der zweite Parameter von substr() die maximale Länge der abgefangenen Zeichenfolge dar, wie in den obigen Ergebnissen gezeigt.
9. String-Kastenkonvertierung
Häufig verwendete Funktionen zum Konvertieren in Groß- oder Kleinbuchstabenzeichenfolgen sind wie folgt:
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"
10. String-Abgleich
Der String-Abgleich erfordert möglicherweise ein gewisses Verständnis für reguläre Ausdrücke. Schauen wir uns zunächst die Funktion match() an:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = myStr.match(pattern);//["love"] console.log(result .index);//2 console.log(result.input );//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中字符串操作的函数应该不止这几个,但是上面列的这些应该都是非常常用的。如果有哪些需要补充的,欢迎补充!希望看到这些以后,再面对字符串的笔试面试题你能非常从容的面对。