|
注册网址:http://www.liaorujiang.com.cn/member/register.php
由于目前浏览器还不能截图,这种文本型的验证问题还无法使用打码平台来处理,当然使用打码平台来处理成本也是比较高的,下面我们来看下如何使用js来解决运算的验证问题
先获取验证问题区域的 html文本
var str =document.getElementById("questionstr").innerHTML;
使用indexOf判断str变量中的字符是否包含 + - * /
- if (str.indexOf("*") > 0)
- {
-
- } else if (str.indexOf("-") > 0)
- {
-
- }else if (str.indexOf("+") > 0)
- {
-
- }else if (str.indexOf("/") > 0)
- {
-
- }
复制代码 然后使用split分割str变量,我们用 "-" 来做例子
得到的结果如下图:
["21", "9=?"] 是一个数组, [0] == 21 [1] == 9=?
接下来我们获取 左边跟右边的字符,相减,就得到了结果
- var temp1 =q[0];
- var temp2 =q[1].replace("=?",""); //把多余的字符替换为空
- var result =Number(temp1)-Number(temp2);
复制代码 得到的结果如下图:
然后把得到的结果写入验证问题的文本框内就行了
- document.getElementById("answer").value= result
复制代码 最终结果如下图:
到此整个识别的过程就已经做好了,接下来我们把代码写完整,就可以实现效果了!
最终的JS代码
- var str =document.getElementById("questionstr").innerHTML;
- if (str.indexOf("*") > 0)
- {
- var q = str.split('*');
- var temp1 =q[0];
- var temp2 =q[1].replace("=?","");
- document.getElementById("answer").value=Number(temp1)*Number(temp2);
- } else if (str.indexOf("-") > 0)
- {
- var q = str.split('-');
- var temp1 =q[0];
- var temp2 =q[1].replace("=?","");
- document.getElementById("answer").value=Number(temp1)-Number(temp2);
- }else if (str.indexOf("+") > 0)
- {
- var q = str.split('+');
- var temp1 =q[0];
- var temp2 =q[1].replace("=?","");
- document.getElementById("answer").value=Number(temp1)+Number(temp2);
- }else if (str.indexOf("/") > 0)
- {
- var q = str.split('/');
- var temp1 =q[0];
- var temp2 =q[1].replace("=?","");
- document.getElementById("answer").value=Number(temp1)/Number(temp2);
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|