|
|
|
แปลงข้อความเป็นตัวเลข javascript php ใครพอมีแนวทางบ้างครับผม |
|
|
|
|
|
|
|
ใช้ if else เช็ดค่าตัวอักษร แล้วเก็บเป็นตัวเลขครับ คิดได้แค่นี้
|
|
|
|
|
Date :
2011-02-09 00:15:05 |
By :
lightkung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$array_thaiNum = array("หนึ่ง" => 1, "สอง" => 2, "สาม" => 3, "สี่" => 4, "ห้า" => 5, "หก" => 6, "เจ็ด" => 7, "แปด" => 8, "เก้า" => 9, "ศูนย์" => 0);
$input = "หนึ่ง";
$output = $array_thaiNum[$input];
|
|
|
|
|
Date :
2011-02-09 00:38:33 |
By :
Rei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้ามันถึง หนึ่งหมื่นล่ะครับ ^_^
ขอบคุณทุกๆ Post นะครับผม
|
|
|
|
|
Date :
2011-02-15 17:09:34 |
By :
saberakito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INPUT แบบไหนคะ
หนึ่งสองสามสี่ห้า หรือ หนึ่งหมื่นสองพันสามร้อยสี่สิบห้า
|
|
|
|
|
Date :
2011-02-15 17:26:59 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบที่สองครับผม
|
|
|
|
|
Date :
2011-02-15 17:33:26 |
By :
saberakito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?php
$String1 = array("ศูนย์","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า");
$String2 = array("0","1","2","3","4","5","6","7","8","9");
$String3 = "หนึ่งสามหก";
$String4 = str_replace($String1,$String2,$String3);
echo $String4;
?>
*** จัดให้ครับพี่น้องครับ การเขียนโปรแกรมเป็นศิลปะอีกแขนงหนึ่ง เราต้องบิ้วอารมณ์ให้เต็มที่ รับรองแหล่มครับ ฮิๆๆๆ ****
***** หนุ่มลำน้ำมูล ครับผม *******
|
|
|
|
|
Date :
2011-02-15 21:25:03 |
By :
หนุ่มลำมูล |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้า INPUT เป็น หนึ่งหมื่นสองพันสามร้อยสี่สิบห้า คงต้องตัดสตริงเพื่อแยกหลักก่อน แล้วค่อยนำมาเทียบเป็นตัวเลขอีกที ปัญหาคือ เราไม่รู้ว่ามันจะมีกี่หลัก ขอลองดูก่อนแล้วกันนะคะ
|
|
|
|
|
Date :
2011-02-16 09:05:42 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่าง Function Javascript การแปลงตัวอักษรเป็นตัวเลข
รูปแบบ INPUT คือ ข้อความ "ห้าล้านหนึ่งแสนสามพันสี่ร้อยยี่สิบเอ็ด"
*ข้อจำกัด สามารถ input ได้ ไม่เกินหลักล้านเท่านั้น
Code (JavaScript)
<script>
var input="ห้าล้านหนึ่งแสนสามพันสี่ร้อยยี่สิบเอ็ด"
function wordsInAmt(words){
var sTens=new Array(3);
sTens[0]="";
sTens[1]="เอ็ด";
sTens[2]="ยี่";
var sUnits=new Array(6);
sUnits[0]="ล้าน"
sUnits[1]="แสน"
sUnits[2]="หมื่น"
sUnits[3]="พัน"
sUnits[4]="ร้อย"
sUnits[5]="สิบ"
var tmpString = words
var tmpUnit = ""
var tmpNumber = new Array();
for(i=0;i<sUnits.length;i++){
tmpUnit = tmpString.split(sUnits[i])
if(tmpUnit.length>1){
tmpNumber.push(tmpUnit[0])
tmpString=tmpUnit[1]
}else{
tmpNumber.push("ศูนย์")
}
}
if(tmpString==""){tmpString="ศูนย์"}
tmpNumber.push(tmpString)
var strNumber="";
var tmp0=0;
for(i=0;i<tmpNumber.length;i++){
if(tmpNumber[i]!="ศูนย์")
tmp0=1
if(tmp0==1)
strNumber+=replaceNumber(tmpNumber[i])
}
for(i=1;i<sTens.length;i++){
strNumber=strNumber.replace(sTens[i],i)
}
return strNumber
}
function replaceNumber(str){
var sNumber=new Array(10);
sNumber[0]="ศูนย์";
sNumber[1]="หนึ่ง";
sNumber[2]="สอง";
sNumber[3]="สาม";
sNumber[4]="สี่";
sNumber[5]="ห้า";
sNumber[6]="หก";
sNumber[7]="เจ็ด";
sNumber[8]="แปด";
sNumber[9]="เก้า";
var newNumber=str
for(x=0;x<sNumber.length;x++){
if(str==sNumber[x]){
newNumber=x
}
}
return newNumber
}
document.write(wordsInAmt(input))
</script>
หมายเหตุ : Function นี้ เขียนขึ้นในเวลาเร่งด่วน ยังไม่ได้ทดสอบอย่างละเอียด ผิดพลาดประการใดก็ต้องขออภัยด้วยนะคะ สำหรับท่านใดที่มีทีเด็ด ก็อย่าลืมเอามาแบ่งปันกันด้วยนะคะ ขอบคุณค่ะ
|
ประวัติการแก้ไข 2011-02-16 10:13:00
|
|
|
|
Date :
2011-02-16 10:07:11 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|