我正在嘗試在 HTML5 幫助系統中動態修改 Adob??e 的 RoboHelp 2017 生成的某些文本中的字串。
我正在嘗試查找在物件標簽的 ID 為 MapCtrl 的物件標簽后面的段落中是否存在文本“在本主題中”。
這是有問題的 HTML 片段,從 Firefox 的檢查器復制:
<object id="MapCtrl" classid="CLSID:A8ECFBF5-08CC-4065-BD74-0FAD1EA61317" data-rhtags="1" class="" width="1" height="1">
</object>
<p style="font-family:Arial;font-size:12pt;font-weight: normal;font-style: normal;text-decoration: none;" data-rhtags="1" class="" align="left">In this Topic <a class="dropspot" href="javascript:TextPopup(this)" id="MTHotSpot46267"><span class="MTText" style="display: none;">Show</span><span class="MTText">Hide</span></a></p>
我可以使用此 JS 代碼處理所需的文本:
const minitoc = document.querySelector('#MapCtrl p');
const text = minitoc.textContent;
console.log (typeof text);
console.log(text);
console.log(text.includes('In this Topic'));
console.log(text.indexOf('In this Topic'));
在我的控制臺中,我可以驗證我的文本變數確實是一個字串型別。我還可以在控制臺中直觀地看到日志輸出中存在“在此主題中”。但是,我的 .includes 方法總是回傳 false。(.indexOf 也不起作用)

我認為它可能因為 在 HTML 中添加到該字串中的代碼而失敗,但我也嘗試過這種變體,但這也不起作用:
console.log(text.includes('In this Topic'));
奇怪的是,它可以很好地找到單個單詞。例如,這將回傳 true:
console.log(text.includes('Topic'));
但是,每當我嘗試添加一個空格來搜索整個短語“在此主題中”時,它都會回傳 false。
我在網上搜索了一個解決方案,并研究了.includes 方法的 MDN 部分。但無法弄清楚為什么它回傳false。
預先感謝您的幫助。
uj5u.com熱心網友回復:
該includes方法搜索字串中的文本。
它不決議任何 HTML。
如果字串包含不間斷空格,則您需要實際的不間斷空格 ( )或JavaScript 轉義序列 ( \xa0)。您不能使用 HTML 物體 ( ) 或常規空格 ( )。
uj5u.com熱心網友回復:
如果您遍歷文本以列印字符的 Unicode 值,看看會發生什么會很有趣,這可能會導致一些有價值的資訊
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/382309.html
標籤:javascript 细绳 子串 机器人帮手
上一篇:Java字串不等于字串?
