在 textarea
中,我想確定最後一個「†」字元的位置。
var textField = document.getElementById("main_field"); console.log(textField.value.indexOf("†"));
<textarea id="main_field">Text † entered by user † †</textarea>
雖然這裡工作得很好,但我在瀏覽器中得到了奇怪的結果
但是,它找不到該字元並返回-1。
我試著去理解角色的內在表現。它在控制台中輸出為“–”,我覺得很奇怪。
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
取得它。