包含(regexp)关于QML中可能是Qstring/string的内容
contains(regexp) on what is possibly a Qstring/string in QML
我在QML中有一个代码片段,应该在屏幕中查找regexp "Calling"。文本,如果没有找到,只有这样才会改变屏幕文本。不幸的是,在QML/QString文档中没有清晰的说明。
Button{
id: call
anchors.top: seven.bottom
anchors.left: seven.left
text: "Call"
width: 40
onClicked:{
if(screen.text.toString().startsWith("Calling" , false))
return;
else
screen.text = "Calling " + screen.text
}
}
我得到的错误是:
文件:///home/arnab/workspace/桌面/例子/cellphone.qml: 127:TypeError:表达式screen.text.toString().startsWith的结果[undefined]不是函数
必须在处理程序中使用Javascript函数:
onClicked:{
var patt = /^Calling/;
if(patt.test(screen.text))
return;
else
screen.text = "Calling " + screen.text
}
因为函数"startsWith"不是标准函数。
不能说你是否可以在QML JS中使用原型,但你可以使用以下代码:
String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
或
if(screen.text.toString().match("^Calling")==screen.text.toString())
更多内容在这里阅读:http://www.tek-tips.com/faqs.cfm?fid=6620
就像其他两个答案表明的那样:toString()
给出了一个JavaScript字符串,而不是QString
,并且JavaScript字符串没有startsWith()
。使用所示的变通方法之一。
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在MongoDB中将String转换为Array
- how to split a string with ','
- Protractor:element.getText()返回一个对象,而不是String
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- JavaScript警报适用于int,但不适用于string
- javascript/angularjs 将 String 与 number for loop 连接起来
- 如何在Android中将Javascript返回值转换为String
- 如何在javascript中对以下字符串使用string.split()
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- 使用JavaScript在Json中提取时,将数组的元素转换为String
- 是否存在将String转换为可执行的c++表达式的方法
- JavaScript - String.newProperty vs. String.prototype.newProp
- 如何将参数应用于String.prototype.format函数
- 在JavaFX的String中包含本地javascript源
- 如何在javascript中将String变量转换为int
- “*[attribute ^="string”是如何/为什么是有效的querySelector?(JS bug
- 为什么使用 Object('123') 创建对象会创建一个 String() 对象,但 typeof 是“对象”
- 包含(regexp)关于QML中可能是Qstring/string的内容