Javascript 如何将输入的php代码的常量值转换为html标记表单 输入数字:
为什么要使用PHP呢Javascript 如何将输入的php代码的常量值转换为html标记表单 输入数字:,javascript,php,html,forms,Javascript,Php,Html,Forms,为什么要使用PHP呢 window.onload=function(){ document.getElementById(“calc”).onsubmit=function(){ this.num2.value=转换数(this.num1.value); 返回false; } } 函数转换\u编号($number){ 如果(isNaN($number)| |$number999){ 返回“编号超出范围”; } var$Hn=数学下限($number/100); $number-=$Hn*100
window.onload=function(){
document.getElementById(“calc”).onsubmit=function(){
this.num2.value=转换数(this.num1.value);
返回false;
}
}
函数转换\u编号($number){
如果(isNaN($number)| |$number<0 | |$number>999){
返回“编号超出范围”;
}
var$Hn=数学下限($number/100);
$number-=$Hn*100;
变量$Dn=数学下限($number/10);
变量$n=$number%10;
var$res=“”;
如果($Hn){
$res+=($res==”“?”“:”“)+转换数字($Hn)+“百”;
}
变量$ones=[,“一”,“二”,“三”,“四”,“五”,“六”,
“七”、“八”、“九”、“十”、“十一”、“十二”、“十三”,
“十四”、“十五”、“十六”、“十七”、“八”,
“十九”
];
var$tens=[“”、“”、“”二十、“”三十、“”四十、“”五十、“”六十、,
“七十”,“壮年”,“九十”
];
如果($Dn | |$n){
如果($res!=“”){
$res+=“和”;
}
如果($Dn<2){
$res+=$one[$Dn*10+$n];
}否则{
$res+=$tens[$Dn];
如果(n美元){
$res+=“-”+$one[$n];
}
}
}
返回$res==“”?“零”:$res;
}
输入数字:
输出文字:
您可以创建这样的函数
<?php
function convert_number($number) {
if (($number < 0) || ($number > 999)) {
echo ("Number is out of range");
} else if (!is_numeric($number)) {
echo ("not a number");
} else {
$Hn = floor($number / 100);
$number -= $Hn * 100;
$Dn = floor($number / 10);
$n = $number % 10;
$res = "";
if ($Hn) {
$res .= (empty($res) ? "" : " ") .
convert_number($Hn) . " Hundred";
}
$ones = array("", "One", "Two", "Three", "Four", "Five", "Six",
"Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen",
"Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen",
"Nineteen");
$tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty",
"Seventy", "Eigthy", "Ninety");
if ($Dn || $n) {
if (!empty($res)) {
$res .= " and ";
}
if ($Dn < 2) {
$res .= $ones[$Dn * 10 + $n];
} else {
$res .= $tens[$Dn];
if ($n) {
$res .= "-" . $ones[$n];
}
}
}
if (empty($res)) {
$res = "zero";
}
return $res;
}
}
$cheque_amt = "342";
?>
<form method="post">
Input in Numbers:
<input type="text" name="res" value="<?php echo $cheque_amt ?>">
<br>
<br>
Output in words:
<input type="text" name="lname" readonly="readonly" value="<?php echo convert_number($cheque_amt) ?>">
<br>
<br>
<input type="submit" value="Submit">
</form>
函数将数字转换为单词($number){
$hyphen='-';
$连接='和';
$separator=',';
$negative='negative';
$decimal='点';
$dictionary=数组(
0=>“零”,
1=>“一”,
2=>“两个”,
3=>‘三’,
4=>“四”,
5=>“五”,
6=>“六”,
7=>“七”,
8=>“八”,
9=>“九”,
10=>“十”,
11=>“11”,
12=>“十二”,
13=>“十三”,
14=>‘十四’,
15=>“十五”,
16=>“十六”,
17=>“17”,
18=>‘十八’,
19=>“十九”,
20=>‘二十’,
30=>“三十”,
40=>“四十”,
50=>“50”,
60=>“六十”,
70=>“70”,
80=>“80”,
90=>90分,
100=>100,
1000=>‘千’,
1000000=>‘百万’,
1000000000=>十亿,
1000000000000=>万亿,
10000000000000=>“万亿美元”,
10000000000000000=>“五百万”
);
如果(!是数字($number)){
返回false;
}
如果($number>=0&&(int)$number<0)| |(int)$number<0-PHP_int_MAX){
//溢出
触发错误(
“convert_number_to_words”只接受介于-'.PHP_INT_MAX'和'.PHP_INT_MAX'之间的数字,
用户警告
);
返回false;
}
如果($number<0){
返回$negative。将_number_转换为_单词(abs($number));
}
$string=$fraction=null;
if(strpos($number,'.')!==false){
列表($number,$fraction)=分解('.',$number);
}
开关(真){
案例$number<21:
$string=$dictionary[$number];
打破
案例$number<100:
十元=((整数)($number/10))*10;
$units=$number%10;
$string=$dictionary[$tens];
若有的话(单位){
$string.=$hyphen.$dictionary[$units];
}
打破
案例$number<1000:
$数百=$number/100;
$rements=$number%100;
$string=$dictionary[$数百].'.$dictionary[100];
若有($剩余){
$string.=$conjunction.将数字转换为单词($restinutes);
}
打破
违约:
$baseUnit=pow(1000,楼层(对数($number,1000));
$numBaseUnits=(int)($number/$baseUnit);
$rements=$number%$baseUnit;
$string=将数字转换为单词($numBaseUnits)。''.$dictionary[$baseUnit];
若有($剩余){
$string.=$rements<100?$conjunction:$separator;
$string.=将数字转换为单词($restrict);
}
打破
}
如果(null!=$fraction&&是数值($fraction)){
$string.=$decimal;
$words=array();
foreach(str_分割((字符串)$分数)作为$number){
$words[]=$dictionary[$number];
}
$string.=内爆(“”,$words);
}
返回$string;
}
请格式化您的代码欢迎使用SO。请访问,了解如何提问以及提问内容。你的代码到底有什么问题?你的代码有效吗?有什么事情是你不想发生的吗?与其编写这个复杂的代码,不如使用PHP的现有类:@AliZia-为什么要浪费时间格式化空格和括号?使用不同于您喜欢的格式是完全可以的。
function convert_number_to_words($number) {
$hyphen = '-';
$conjunction = ' and ';
$separator = ', ';
$negative = 'negative ';
$decimal = ' point ';
$dictionary = array(
0 => 'zero',
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
5 => 'five',
6 => 'six',
7 => 'seven',
8 => 'eight',
9 => 'nine',
10 => 'ten',
11 => 'eleven',
12 => 'twelve',
13 => 'thirteen',
14 => 'fourteen',
15 => 'fifteen',
16 => 'sixteen',
17 => 'seventeen',
18 => 'eighteen',
19 => 'nineteen',
20 => 'twenty',
30 => 'thirty',
40 => 'fourty',
50 => 'fifty',
60 => 'sixty',
70 => 'seventy',
80 => 'eighty',
90 => 'ninety',
100 => 'hundred',
1000 => 'thousand',
1000000 => 'million',
1000000000 => 'billion',
1000000000000 => 'trillion',
1000000000000000 => 'quadrillion',
1000000000000000000 => 'quintillion'
);
if (!is_numeric($number)) {
return false;
}
if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) {
// overflow
trigger_error(
'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX,
E_USER_WARNING
);
return false;
}
if ($number < 0) {
return $negative . convert_number_to_words(abs($number));
}
$string = $fraction = null;
if (strpos($number, '.') !== false) {
list($number, $fraction) = explode('.', $number);
}
switch (true) {
case $number < 21:
$string = $dictionary[$number];
break;
case $number < 100:
$tens = ((int) ($number / 10)) * 10;
$units = $number % 10;
$string = $dictionary[$tens];
if ($units) {
$string .= $hyphen . $dictionary[$units];
}
break;
case $number < 1000:
$hundreds = $number / 100;
$remainder = $number % 100;
$string = $dictionary[$hundreds] . ' ' . $dictionary[100];
if ($remainder) {
$string .= $conjunction . convert_number_to_words($remainder);
}
break;
default:
$baseUnit = pow(1000, floor(log($number, 1000)));
$numBaseUnits = (int) ($number / $baseUnit);
$remainder = $number % $baseUnit;
$string = convert_number_to_words($numBaseUnits) . ' ' . $dictionary[$baseUnit];
if ($remainder) {
$string .= $remainder < 100 ? $conjunction : $separator;
$string .= convert_number_to_words($remainder);
}
break;
}
if (null !== $fraction && is_numeric($fraction)) {
$string .= $decimal;
$words = array();
foreach (str_split((string) $fraction) as $number) {
$words[] = $dictionary[$number];
}
$string .= implode(' ', $words);
}
return $string;
}