Party_bid 第二张卡中的一个难点就是活动报名短信的接收、自动回复以及处理,其他的一些知识点的使用也都是为这个功能而服务的。接下来就我在做第二张卡时遇到的几个问题以及重要的知识点做一下总结。
1、对接收的短信的格式进行判断处理
第二张卡的要求是报名格式“bm+姓名”,其中“bm”不区分大小写,且“bm”前后可以有空格。
思路:
首先要对发来的字符串进行去空格,这里用到的一个新的方法就是使用正则表达式的replace和search。
var message = json_message.messages[0].message.replace(/\s/g, ""); var b=message.search(/bm/i);
1) replace函数有两个参数,第一个是被替换的元素,第二个是替换元素。\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。\s匹配任何空白字符,包括空格、制表符、换页符等等,/g代表全局匹配,该行代码的意思是用空来代替空格即去空格。这样message就是不含空格的字符串,现在就只需要检查是否符合bm开头了。
2)search函数
search返回与正则表达式查找内容匹配的第一个子字符串的位置。search 方法指明是否存在相应的匹配。如果找到一个匹配,search方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1 。“/bm/i”为正则表达式,i是模式匹配符,ignorCase忽略大小写,放在正则表达式的最后,当参数使用。第二句代码的意思是查找message字符串,看是否匹配“bm”,且不区分大小写。
search的使用例子如下:
"shdkjkk".search(/dk/i) //这个语句在shdkjkk中匹配,返回值为2 "bm".search(/bm/i) //这个语句的返回值为0 "gfBmty".search(/bm/i) //这个语句的返回值为2 "bdrtm".search(/bm/i) //这个语句的返回值为-1 ,表示不匹配2、接收短信后页面及时刷新
1)事件触发刷新
我在进行这块时并没有想到及时的刷新,导致报名信息不能呈现在列表中。
页面的刷新要有触发者和执行者,触发刷新的事件就是收到短信,这块在sms中写。将sms和html关联起来的就是html的id
<div id="register"></div> //定义页面的idsms中触发事件的代码:
//获得报名id刷新报名页面 var register = document.getElementById("register"); //获取报名页面的id if (register) { var scope = angular.element(register).scope(); //通过id找到对应的页面获取$scope scope.$apply(function () { //使用$apply()将报名页面的refresh方法包起来调用 scope.refresh(); }); }
我们的refresh方法在相应的js文件里面写。
2)时间触发刷新
还有一个就是按时间进行刷新。setTimeout只执行一次,而setInterval在执行完代码后,固定的时间后还会再执行。
setTimeout(code,millisec)
code (必需):是要调用的函数后要执行的 JavaScript 代码串。millisec(必需):在执行代码前需等待的毫秒数。
varmsg='1shaspassed!'; setTimeout(function(){ alert(msg); },1000); //第一个参数传递了一个会调用所需语句的function对象,这样就解决了code带参的问题。
3、正在进行的活动底色为黄色
首先自己定义一个css颜色样式
.status{ background-color: #ffff00 ; }
然后在对应的html中,定义一个变量类,使用对象绑定,并使activity.status成为存储中的一个元素
<li ng-repeat="activity in activities" class="{{activity.status}}" ng-click="activity_register(activity.name)">
只需在对应的JS文件中对存储的status元素进行赋值存储然后提取即可。
4、点击结束弹出二次提醒对话框
event.returnValue = confirm("确认要结束本次报名吗?"); if (event.returnValue) { //你的处理内容 }
confirm里填写提醒内容,返回为true和false,然后再进行处理。
相关推荐
数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578
标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...
在计算CRC时,数据被看作是二进制多项式的系数,与生成多项式进行模2除法运算。生成多项式G(x)决定了CRC码的长度和特性,这里的G(x)有16位,所以产生的CRC校验和也是16位。 CRC-16 CCITT的计算过程可以分为以下步骤...
欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。
该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...
2. **多渠道**:在mc_bid策略中,多渠道意味着广告主可以在不同的平台、网站、应用或者媒体类型上展示广告,例如社交媒体、搜索引擎、视频平台等。每个渠道都有其独特的用户群体和行为特征,通过多渠道投放,广告主...
标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...
去噪代码 matlab
bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe
bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file
总结起来,这个“backup_1000821v1001400000.zip”压缩包可能包含了一个陌陌应用或系统的备份数据,其中`verify.json`和`config.json`文件提供了备份验证和应用配置信息,而`verify.sign`和`verify.signature`则保证...
【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...
标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...
bid0-lid64-steam.game_steamzc_2.0.0.2242.exe
出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都
bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...
标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...
`quadratic_bid_ninebus.m`可能涉及了二次出价(Quadratic Bidding)的概念,这是电力市场中一种价格-数量关系的表示方式,其中发电或负荷的成本随着出力的增加而呈二次函数变化。在这个程序中,它可能被用来模拟...
[1]和[2]中的适用于类的BID方法的MATLAB DEMO。 该方法基于即插即用(PnP)框架。 MAIN BID函数:Main_BID_PnP.m 演示脚本:Demo_BID_PnP.m%========================================== ========================...
2. **创建新项目** - 在初始界面,点击 "Create a new project" 链接,输入项目名称和选择存储位置,然后点击 "OK"。 3. **选择语言** - 默认选择中文,点击 "OK" 继续。 4. **选择元数据来源** - 在 "Metadata...