收到短信是先要对短信进行去空格处理,而后查询是否包含关键字,这里用到的方法如下:
message.replace(/\s/g, "") message.search(/bm/i)
需要说明的是replace(/\s/g, "")中"\s"表示空白字符,"/g"表示全局,即用""来替换message中所有的空格,以达到去空格的目的。
search(/bm/i),表示在message中查找关键词bm,返回的i是指bm在message在字符串中的位置。如:massage="bmjsidjiejd",则message.search(/bm/i)返回的i=0。
对短信进行有用信息提取的时候还涉及到如下方法:
massage.substr(2) massage.substring(0,2)
以上两种方法得出的效果是一样的,massage.substr(2)中“2”表示从首位开始,去除前两位,这种方法只能用于去除字符串前面的数据,而 massage.substring(0,2)可以去除字符串中任何一位。“0”表示从首位开始,“2”同massage.substr(2)中“2”意义相同,这个方法可以通过改变massage.substring(a,b)中a来定位字符串中任何位置的数据。
这张卡在页面方面主要要注意的是:当活动进行时,活动列表中该活动名背景色为黄色。这里涉及到活动列表与活动报名页面的连接,及实时监听,我使用的方法是ng-class。
在html页面列表中写
ng-class={"bkcolor:activity.status===1"}
bkcolor是写在css里面的样式,activity.status===1代表活动进行时,用绝对等于是为了兼顾代码的严密性,当然也可以用==。整个方法是指当activity.status===1时,页面自动调用bkcolor中的样式。
活动报名页面需要实时刷新
在报名页面添加如下代码:
<div id="register"></div> //id为页面id
在相应js中添加:
var register = document.getElementById("register"); //获取报名页面的id if (register) { var scope = angular.element(register).scope();//通过id找到对应的页面获取$scope scope.$apply(function () { //使用$apply()将报名页面的refresh方法包起来调用 scope.refresh(); }); }
最后要强调的是,在打包安装到手机上时,很有可能其他功能正常执行,却会不了短信,这时需要注意的是你引用js的顺序。引用顺序的不同,调用的顺序也是不同的,可能你先引用了这个js方法中有用到另一个js,你如果没有先引另一个js,那么这个js就调不到方法,功能也就自然不能实现。