如何使用c++在between字符串中替换更新后的值

How to replace with updated value in between string using C++?

本文关键字:更新 替换 字符串 何使用 c++ between      更新时间:2023-10-16

我试图用更新的值替换字符串。第一次用更新后的值替换,之后就不再更新了。

这是我的字符串:

 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中得到更新的值。这里我用currentPageInstanceId替换__PAGE_ID__,这就是为什么它第一次被替换。现在我想替换"PAGE_ID="answers";"之间的值。我怎么能代替。我试过了。

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);

由于您想要多次更新__PAGE_ID__(可能还有__SCROLL_PERCENTAGE__)的值,我将以这种方式处理它:

设置你的JAVASCRIPT值为:

QString   JAVASCRIPT =
                 "<script>var PAGE_ID=%1; var SCROLL_PERCENTAGE=%2;</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>";

当你想设置值时,使用arg方法:

QString script = JAVASCRIPT.arg(currentPageInstanceId).arg(currentScrollPercentage);