将此文件中的值转换为文字转换Javascript

将此文件中的值转换为文字转换Javascript,javascript,jquery,Javascript,Jquery,我有一个将数值转换成文字的代码。我只想在文字上加上美分,如果用户输入的金额值为美分 如果我有1000.88美元。大写金额为1000比索捌角捌分 更新: 对代码进行了编辑,以拆分整个值和美分值。剩下的唯一一件事就是将美分转换成文字 抱歉等待,由于某种原因,此行攻击了我的代码 val = parseInt( val.replace(/,/g,''), 10 ); 我把它改成: val = val.replace(/,/g,''); 它似乎有相同的功能,同时允许我做我的事情。这是代码。我使用正则

我有一个将数值转换成文字的代码。我只想在文字上加上美分,如果用户输入的金额值为美分

如果我有1000.88美元。大写金额为1000比索捌角捌分

更新: 对代码进行了编辑,以拆分整个值和美分值。剩下的唯一一件事就是将美分转换成文字


抱歉等待,由于某种原因,此行攻击了我的代码

val = parseInt( val.replace(/,/g,''), 10 );
我把它改成:

val = val.replace(/,/g,'');
它似乎有相同的功能,同时允许我做我的事情。这是代码。我使用正则表达式在
val
(if语句)中测试一段时间,然后将val拆分为一段时间前后的内容。split函数中的
2
应该只允许从中产生两个字符串,这意味着10.20将变成“10”和“20”,其中1.2.3将变成“1”和“2”,并丢弃3。数组从0开始,因此
valArray[0]
是数组中的第一个字符串,而
valArray[1]
是第二个字符串

val = val.toString();
var valArray = val.split('\.', 2); //splits val into two seperate integers, whole numbers and decimals, in an array.   
val = valArray[0]; //this is the whole number
var val2 = valArray[1]; //this should be the decimals

if(val2 != null && val2 != ''){
//convert the decimals here
var str2 = 'TWENTY CENTS';
}
else{
var str2 = '';
}

更新:

这是一个使用美元和美分的完整版本

const num2text={
一、一、二、三、四、五、六、七、八、九、十、十一、十二、十三、十四、十五、十六、十七、十八、十九、,
十位数:['','二十','三十','四','五十','六十','七十','八十','九十'],
九月:[“千”、“百万”、“十亿”、“万亿”、“万亿”、“万亿”、“万亿”、“万亿”、“万亿”、“百万分之五”、“六分之一”]
};
const convert=函数(val){
如果(val.length==0){
返回“”;
}
val=val.replace(/,/g',);
if(伊斯南(瓦尔)){
返回“无效输入”;
}
let[val1,val2]=val.split(“.”)
设str2=“”;
if(val2!=null&&val2!=''){
//在这里转换小数
变量位数=(val2+“0”)。切片(0,2)。拆分(“”);
str2=num2text.tens[+位[0]+“”+num2text.one[+位[1]]
}
设arr=[];
while(val1){
arr.push(val1%1000);
val1=parseInt(val1/1000,10);
}
设i=0;
设str=“”;
while(arr.length){
str=(函数(a){
var x=数学楼层(a/100),
y=数学楼层(a/10)%10,
z=a%10;
返回(x>0?num2text.ones[x]+“百”:“+
(y>=2?num2text.tens[y]+''+num2text.one[z]:num2text.one[10*y+z]);
})(arr.shift())+num2text.sep[i++]+str;
}
返回str+
“美元”+
(str2?和“+str2+”分“:”)+
“只有”;
};
addEventListener(“加载”,函数(){
document.getElementById(“totalamountpaid”).addEventListener(“输入”,函数(){
document.getElementById(“words”).innerHTML=convert(this.value)
});
});




我不明白你的问题是什么,你的想法似乎有了一个良好的开端。这将不是一个简单的问题,因为语言不像数字那样有逻辑。我不知道我将在整数之后添加什么条件以及如何组合它。对我来说,最简单的方法是
mystr.split(“.”)并将其作为两个独立的变量处理。.split函数将把它们放入数组中,你了解数组吗?是的,但是如果你不介意的话,你可以更轻松地编辑小提琴,让我看看它是如何工作的?我不完全确定你的程序是如何工作的,但我可以试试。我可以在小提琴中查看结果吗?哦,对不起,没有包含链接!检查更新!您可以
.split()
而无需检查字符。如果没有句点,您将收到长度为1的数组。您可能应该创建一个函数来处理数字到单词的转换,然后将数组的两个部分分别传递给该函数以获得最终答案(例如,
var amount=numberToWords(part[0])+'美元和'+numberToWords(part[1])+'美分'
),将其转换为单词取决于您,我只是在演示如何在这段时间拆分。20美分只是一个例子。答案根据user113215稍微更新了一下,不过你们也应该记下他对你们整体设计的笔记。
val = val.toString();
var valArray = val.split('\.', 2); //splits val into two seperate integers, whole numbers and decimals, in an array.   
val = valArray[0]; //this is the whole number
var val2 = valArray[1]; //this should be the decimals

if(val2 != null && val2 != ''){
//convert the decimals here
var str2 = 'TWENTY CENTS';
}
else{
var str2 = '';
}