Heim  >  Artikel  >  Web-Frontend  >  So ermitteln Sie, ob eine Zeichenfolge in JS vorhanden ist oder nicht

So ermitteln Sie, ob eine Zeichenfolge in JS vorhanden ist oder nicht

yulia
yuliaOriginal
2018-09-11 17:29:561426Durchsuche

Was denken Sie, wenn Sie dieses Thema sehen? Das ist sehr einfach und bestimmt dann die Länge.

  if(typeof unknownVariable ==='string' && unknownVariable.length){
        ...
    }

Hat es?

Was passiert, wenn dieser String mit new String() erstellt wird? Der unbekannte Variablentyp muss Objekt sein. Was würdest du tun?
Sie müssen auf jeden Fall zuerst den Typ bestimmen, typeof unlimitedVariable==='object'? Aber man muss bedenken, dass es auch eine Nullvariable gibt, deren Werttyp ebenfalls Objekt ist. Müssen wir && unbekannte Variable verwenden? Jetzt ist es ein nicht leeres Objekt. Müssen wir die Länge überprüfen? Aber am Ende ist der Objekttyp nicht unbedingt ein String-Objekt, es können auch andere Objekte sein, wie Arrays, JSON-Objekte, andere von new abgeleitete Objekte usw. Was zu tun?

Hier geht es um eine selten verwendete, aber nützliche Methode: valueOf. valueOf gibt den ursprünglichen Typ der Variablen aus.

 let str1="test"
    let str2=new String('test2')
    let arr1=[1,2,3]
    let fn1=function(){
        console.log('this is a function')
    }
    let obj1={
        name:'gpd'
    }
    let obj2=new Object()
    obj2.name='gpd'   
    str1.valueOf()  // "test"
    str2.valueOf()  //"test2"
    arr1.valueOf()  //[1,2,3]
    fn1.valueOf()  //fn1(){}
    obj1.valueOf() // {name:"gpd"}
    obj2.valueOf() // {name:"gpd"}

Ob Sie also ein String-Literal oder ein String-Objekt sind, das durch einen neuen String erhalten wird, sein valueOf-Wert ist ein String-Literal. Dann sind alle Werte vom Typ string .
Der letzte Richter ist also

if(typeof unknownVariable !=undefined 
    && unknownVariable 
   && typeof unknowVariable.valueOf() === "string")
   {
       ...
   }

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob eine Zeichenfolge in JS vorhanden ist oder nicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn