Heim  >  Fragen und Antworten  >  Hauptteil

JavaScript-Fehler bei der Behandlung von Sonderzeichen †

In textarea möchte ich die Position des letzten „†“-Zeichens bestimmen.

var textField = document.getElementById("main_field"); 

console.log(textField.value.indexOf("†"));
<textarea id="main_field">Text † entered by user † †</textarea>

Obwohl das hier gut funktioniert, erhalte ich seltsame Ergebnisse im Browser

Das Zeichen kann jedoch nicht gefunden werden und es wird -1 zurückgegeben.

Ich versuche, die innere Leistung der Figur zu verstehen. Es wird in der Konsole als „-“ ausgegeben, was ich seltsam finde.

P粉187160883P粉187160883408 Tage vor448

Antworte allen(1)Ich werde antworten

  • P粉043432210

    P粉0434322102023-09-08 09:31:02

    首先,让我们看看它是如何工作的。

    console.log(document.getElementById("textField1").value.lastIndexOf("†"));
    console.log(document.getElementById("textField2").value.lastIndexOf("†"));
    <textarea id="textField1" value="a†b†c†d"></textarea>
    <textarea id="textField2">a†b†c†d</textarea>

    现在我们已经看到了这一点,我们需要找出您的代码出了什么问题。首先,您需要检查 textField.value 是否包含您正在搜索的字符。接下来,查看代码中的此调用:

    .substring(0, startPos)

    这实际上是获取从头开始直到 startPos 的子字符串。从 startPos 的名称来看,似乎不是从 startPos 之前获取字符串,而是从 startPos 获取它。

    Antwort
    0
  • StornierenAntwort