Ich habe diese Werte:

  • 4Grün (Blister) [Andere]
  • ! @ # $% ^ & * () 'RWEW <>? P {}: "[Sachet]
  • VERSUCH [Sachet]

Wie bekomme ich den Wert in [], nur brauche ich keinen anderen Wert. Nur die Zeichenfolge im [] Teil wie Sachet oder andere in Javascript. Ich brauche sie und übergebe sie an meine Ajax-Funktion

0
jc premiere 18 Aug. 2015 im 05:56

3 Antworten

Beste Antwort

Die Verwendung eines regulären Ausdrucks ist hier der schnellste Weg. Sie können dieses verwenden: (\[\w+\])+ oder (\[.*\]) oder \[(.*?)].

UPDATE

var samples = [ '4Green (Blister) [Others]', '!@#$%^&*()\'RWEW<>?P{}:" [Sachet]',
    'TRIAL [Sachet]'];
var regex = /\[(.*?)]/;

for (var i = 0; i < samples.length; i++) {
  console.log(samples[i].match(regex)[1]);
}

Ausgabe:

machina@6PXM10I> node regex.js
Others
Sachet
Sachet
2
x80486 18 Aug. 2015 im 03:33

Wenn Sie aus irgendeinem Grund keinen regulären Ausdruck verwenden möchten, können Sie dies folgendermaßen tun:

  1. Sie können jede zu testende Zeichenfolge abrufen, möglicherweise mit document.getElementsByClassName, und dann die zurückgegebene Array-ähnliche Sammlung durchlaufen, um jede Zeichenfolge zu extrahieren.

  2. Verwenden Sie dann die Methode "indexOf ()", um den Anfang und das Ende jeder Klammer zu ermitteln. Hier finden Sie weitere Informationen zu "indexOf ()" http://www.w3schools.com/jsref/jsref_indexof. asp

  3. Wenn Sie den Anfang und das Ende jeder Klammer festgelegt haben, extrahieren Sie den Inhalt der Klammern mithilfe der Teilzeichenfolgenmethode. Weitere Informationen zur Teilzeichenfolgenmethode finden Sie hier: http://www.w3schools.com/jsref/jsref_substring.asp

Das Endergebnis würde ungefähr so aussehen:

        var myStrings = document.getElementsByClassName("classNameHere");
        for(var i = 0; i < myStrings.length; i++){
            var start = myStrings[i].indexOf("[");
            var end = myStrings[i].indexOf("]");
            var extractedString = myStrings[i].substring(start, end);
            // Do your Ajax call here with the "extractedString" variable
        }
1
user3089840 18 Aug. 2015 im 03:08

Sie können Folgendes tun:

var myString = "TRIAL [Sachet]";

var myRegexp = /\[(.*)\]+/g;
var match = myRegexp.exec(myString);
alert(match[1]);

Diese Regex bringt dir alles in die [].

Eine weitere Sache, die Sie nicht tun sollten, ist die ungültige Zeichenfolge !@#$%^&*()'RWEW<>?P{}:" [Sachet], und Sie müssen die Anführungszeichen umgehen.

!@#$%^&*()'RWEW<>?P{}:\" [Sachet]

Beachten Sie das \ vor "

1
Subash 18 Aug. 2015 im 03:11