【发布时间】:2026-02-13 00:10:01
【问题描述】:
我正在尝试用更新的值替换字符串。第一次将其替换为更新后的值,但之后不再更新..
这是我的字符串:
QString JAVASCRIPT =
"<script>var PAGE_ID=__PAGE_ID__; var SCROLL_PERCENTAGE=__SCROLL_PERCENTAGE__;</script>"+
"<script type=\"text/javascript\" language=\"javascript\" src=\"scripts/quiz_objects.js\"></script>"+
"<script type=\"text/javascript\" language=\"javascript\" src=\"scripts/swipe.js\"></script>"+
"<script type=\"text/javascript\" language=\"javascript\" src=\"scripts/NativeBridge.js\"></script>"+
"<script type=\"text/javascript\" language=\"javascript\" src=\"scripts/native_base.js\"></script>"+
"<script type=\"text/javascript\" language=\"javascript\" src=\"scripts/native_device.js\"></script>"+
"<script type=\"text/javascript\" language=\"javascript\" src=\"js/mobi.js\"></script>";
我想用更新的值替换 "PAGE_ID" 值。
qDebug() << "currentPageInstanceeeeeeeeId" << currentPageInstanceId;
qDebug() << "javaaaaaaaaa" << JAVASCRIPT;
JAVASCRIPT.replace(__PAGE_ID__," " + currentPageInstanceId);
我在currentPageInstanceId 中获得了更新的值。在这里,我将__PAGE_ID__ 替换为currentPageInstanceId,这就是它第一次被替换的原因。现在我想替换“PAGE_ID=”和“;”之间的值。我该如何更换。我试过这样。
qDebug() << "currentPageInstanceeeeeeeeId" << currentPageInstanceId;
qDebug() << "javaaaaaaaaa" << JAVASCRIPT;
Qt::CaseSensitivity cs = Qt::CaseSensitive;
script = JAVASCRIPT.indexOf("PAGE_ID=",cs);
script1 = JAVASCRIPT.lastIndexOf(";", cs);
JAVASCRIPT.replace(script+""+ script1," " + currentPageInstanceId);
提前致谢。
【问题讨论】:
-
我从未使用过
Qstring,我现在也无法访问带有 QT 的机器。尽管我尝试在标准 C++ 中重新解决您的问题,但我认为它有效,请检查 ideone.com/QefV3C 的代码。希望有帮助:-) -
@40two 感谢您的回复 :) 但是当我尝试此代码时,我遇到了诸如“'pos'、'offset' 和 'delim_idx' 没有命名类型”之类的错误。
-
您的编译器不支持 C++11 将关键字
auto更改为std::size_t。 -
@40two 我将 auto 更改为 std::size_t 这些错误已清除,但现在我收到另一个错误,因为“字符串没有命名类型”..我删除了“字符串 JAVASCRIPT;”在头文件中......或者如果声明为“QString JAVASCRIPT;”我越来越喜欢“'class QString'没有名为'find'的成员”。
-
包括字符串标题(即,放入序言
#include <string>)。
标签: c++ string replace blackberry-10