$('btn').onclick = function(){ var total = 0; var reN = /\d/; var reA = /[a-z]/; var o = { a:1,b:2,c:3,d:4,e:5,f:6,g:7,h:8,i:9,j:10,k:11,l:12,m:13,n:14,o:15,p:16,q:17,r:18,s:19,t:20,u:21,y:22,w:23,x:24,y:25,z:26 } var val = $('test').value; val = val.split(''); for(var i = 0, len = val.length; i < len; i++){ if( reN.test(val[i]) ){ total += parseInt(val[i]); } if( reA.test(val[i]) ){ total += o[val[i]]; } }
<html>
<head>
<meta charset="gb2312" />
<style>
</style>
</head>
<body>
<input type="text" id="test" />
<input type="button" id="btn" value="demo" />
<script>
function $(o){return document.getElementById(o)}
$('btn').onclick = function(){
var total = 0;
var reN = /\d/;
var reA = /[a-z]/;
var o = {
a:1,b:2,c:3,d:4,e:5,f:6,g:7,h:8,i:9,j:10,k:11,l:12,m:13,n:14,o:15,p:16,q:17,r:18,s:19,t:20,u:21,y:22,w:23,x:24,y:25,z:26
}
var val = $('test').value;
val = val.split('');
for(var i = 0, len = val.length; i < len; i++){
if( reN.test(val[i]) ){
total += parseInt(val[i]);
}
if( reA.test(val[i]) ){
total += o[val[i]];
}
}
alert(total%81)
//alert(total)
}
</script>
</body>
</html>
没学过PHP。。整起来还真难阿。。
$val = $_GET['val'];
$reN = '/\d/';
$reA = '/[a-z]/';
$o = Array(
a=>1,b=>2,c=>3,d=>4,e=>5,f=>6,g=>7,h=>8,i=>9,j=>10,k=>11,l=>12,m=>13,
n=>14,o=>15,p=>16,q=>17,r=>18,s=>19,t=>20,u=>21,v=>22,w=>23,x=>24,y=>25,z=>26
);
$total = 0;
$val = str_split($val);
//print_r($val);
for($i = 0; $i < count($val); $i++){
if(preg_match($reN,$val[$i])){
$total += +$val[$i];
}
if(preg_match($reA,$val[$i])){
$total += $o[$val[$i]];
}
} //print_r($val);
echo $total%81;
?><form method="get" action="?">
<input type="text" name="val" />
<input type="submit" />
</form>
array str_split ( string $string [, int $split_length = 1 ] )
将一个字符串转换为数组。 参数string
输入字符串。 split_length
每一段的长度。
返回值
如果指定了可选的 split_length 参数,返回数组中的每个元素均为一个长度为 split_length 的字符块,否则每个字符块为单个字符。 如果 split_length 小于 1,返回 FALSE。如果 split_length 参数超过了 string 超过了字符串 string 的长度,整个字符串将作为数组仅有的一个元素返回。 范例Example #1 str_split() 使用范例
<?php$str = "Hello Friend";$arr1 = str_split($str);
$arr2 = str_split($str, 3);print_r($arr1);
print_r($arr2);?>
以上例程会输出:Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => F
[7] => r
[8] => i
[9] => e
[10] => n
[11] => d
)Array
(
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)
$letter = array('a'=>'1','b'=>'2','c'=>'3','d'=>'4','e'=>'5','f'=>'6','g'=>'7','h'=>'8');
if($_POST){
$param = str_split($_POST['param']);
foreach((array)$param as $key=>$value){
if($value == '+'){
unset($param[$key]);
}elseif(!is_numeric($value)){
$param[$key] = array_search($value,array_flip($letter));
}
}
$sum = array_sum($param);
$k = array_search($sum,array_flip($figure));
var_dump($k);
}
<html>
<form name="form1" method="post">
<input name="param" value="" type="text" />
<input type="submit" name="submit" value="提交"/>
</form>
</html>