金额正则表达式 金额的正则
JAVA 编程 输出金额的中文大写形式
// 如果用户当初输入的时候只输入了 0,则只返回一个 "零"public class Text {
金额正则表达式 金额的正则
金额正则表达式 金额的正则
金额正则表达式 金额的正则
/
测试程序的可行性
@param args
public static void main(String[] args) {
System.out.println("--------将数字转换成中文金额的大写形式------------n");
Trans2RMB t2r = new Trans2RMB();
String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));
// 如果转换过后是一个空串,则不输出屏幕
if(!"".equals(s)) {
System.out.println("转换成中文后为:" + s);;
}/
从命令行接收一个数,在其中调用 checkNum() 方法对其进行
验证,并返回相应的值
@return 如果输入合法,返回输入的这个数
private String getNum() {
String s = null;
System.out.println("请输入一个数字(到小数点后两位):");
// 从命令行输入这个浮点数
s = scanner.next();
// 判断用户输入是否合法
// 若合法,返回这个值;若非法返回 "0"
if(this.checkNum(s)) {
return s;
} else {
}}
/
判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符
@param s String
@return 如果用户输入数据合法,返回 true,否则返回 false
private boolean checkNum(String s) {
// 如果用户输入的数里有非数字字符,则视为非法数据,返回 false
try {
// 如果这个数小于零则视为非法数据,返回 false
if(f < 0) {
System.out.println("非法数据,请检查!");
return false;
return tv = v.replace(/^[^d]+(d+.?d)$/, '$1');rue;
}} catch (NumberFormatException e) {
System.out.println("非法数据,请检查!");
return false;
}}
/
把用户输入的数以小数点为界分割开来,并调用 numFormat() 方法
进行相应的中文金额大写形式的转换
注:传入的这个数应该是经过 roundString() 方法进行了四舍五入作的
@param s String
@return 转换好的中文金额大写形式的字符串
private String splitNum(String s) {
// 如果传入的是空串则继续返回空串
}// 以小数点为界分割这个字符串
int index = s.indexOf(".");
// 截取并转换这个数的整数部分
String part1 = this.numFormat(1, intOnly);
// 截取并转换这个数的小数部分
String allOnly = s.substring(index + 1);
String part2 = this.numFormat(2, allOnly);
// 把转换好了的整数部分和小数部分重新拼凑一个新的字符串
String newS = part1 + part2;
return newS;
}/
对传入的数进行四舍五入作
@return 四舍五入后的新值
private String roundString(String s) {
// 如果传入的是空串则继续返回空串
}// 将这个数转换成 double 类型,并对其进行四舍五入作
double d = Double.parseDouble(s);
// 此作作用在小数点后两位上
d = (d 100 + 0.5) / 100;
// 将 d 进行格式化
s = new ja.text.DecimalFormat("##0.000").format(d);
int index = s.indexOf(".");
// 这个数的整数部分
// 规定数值的长度只能到万亿单位,否则返回 "0"
if(intOnly.length()13) {
System.out.println("输入数据过大!(整数部分最多13位!)");
}// 这个数的小数部分
String allOnly = s.substring(index + 1);
// 如果小数部分大于两位,只截取小数点后两位
if(allOnly.length()2) {
s = intOnly + "." + roundSmall;
}return s;
}/
把传入的数转换为中文金额大写形式
@param flag int 标志位,1 表示转换整数部分,0 表示转换小数部分
@return 转换好的带单位的中文金额大写形式
private String numFormat(int flag, String s) {
int sLength = s.length();
// 货大写形式
String bigLetter args) {
System.out.println("--------将数字转换成中文金额的大写形式------------n");
Trans2RMB t2r = new Trans2RMB();
String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));
// 如果转换过后是一个空串,则不输出屏幕
if(!"".equals(s)) {
System.out.println("转换成中文后为:" + s);;
}/
从命令行接收一个数,在其中调用 checkNum() 方法对其进行
验证,并返回相应的值
@return 如果输入合法,返回输入的这个数
private String getNum() {
String s = null;
System.out.println("请输入一个数字(到小数点后两位):");
// 从命令行输入这个浮点数
s = scanner.next();
// 判断用户输入是否合法
// 若合法,返回这个值;若非法返回 "0"
if(this.checkNum(s)) {
return s;
} else {
}}
/
判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符
@param s String
@return 如果用户输入数据合法,返回 true,否则返回 false
private boolean checkNum(String s) {
// 如果用户输入的数里有非数字字符,则视为非法数据,返回 false
try {
// 如果这个数小于零则视为非法数据,返回 false
if(f < 0) {
System.out.println("非法数据,请检查!");
return false;
return true;
}} catch (NumberFormatException e) {
System.out.println("非法数据,请检查!");
return false;
}}
/
把用户输入的数以小数点为界分割开来,并调用 numFormat() 方法
进行相应的中文金额大写形式的转换
注:传入的这个数应该是经过 roundString() 方法进行了四舍五入作的
@param s String
@return 转换好的中文金额大写形式的字符串
private String splitNum(String s) {
// 如果传入的是空串则继续返回空串
}// 以小数点为界分割这个字符串
int index = s.indexOf(".");
// 截取并转换这个数的整数部分
String part1 = this.numFormat(1, intOnly);
// 截取并转换这个数的小数部分
String allOnly = s.substring(index + 1);
String part2 = this.numFormat(2, allOnly);
// 把转换好了的整数部分和小数部分重新拼凑一个新的字符串
String newS = part1 + part2;
return newS;
}/
对传入的数进行四舍五入作
@return 四舍五入后的新值
private String roundString(String s) {
// 如果传入的是空串则继续返回空串
}// 将这个数转换成 double 类型,并对其进行四舍五入作
double d = Double.parseDouble(s);
// 此作作用在小数点后两位上
d = (d 100 + 0.5) / 100;
// 将 d 进行格式化
s = new ja.text.DecimalFormat("##0.000").format(d);
int index = s.indexOf(".");
// 这个数的整数部分
// 规定数值的长度只能到万亿单位,否则返回 "0"
if(intOnly.length()13) {
System.out.println("输入数据过大!(整数部分最多13位!)");
}// 这个数的小数部分
String allOnly = s.substring(index + 1);
// 如果小数部分大于两位,只截取小数点后两位
if(allOnly.length()2) {
s = intOnly + "." + roundSmall;
}return s;
}/
把传入的数转换为中文金额大写形式
@param flag int 标志位,1 表示转换整数部分,0 表示转换小数部分
@return 转换好的带单位的中文金额大写形式
private String numFormat(int flag, String s) {
int sLength = s.length();
// 货大写形式
String bigLetter[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
// 货单位
String unit[] = {"元", "拾", "佰", "仟", "万",
"拾", "佰", "仟",
// 亿位到万亿位
"亿", "拾", "佰", "仟", "万"};
String all[] = {"分", "角"};
// 用来存放转换后的新字符串
String newS = "";
// 逐位替换为中文大写形式
for(int i = 0; i < sLength; i ++) {
if(flag == 1) {
// 转换整数部分为中文大写形式(带单位)
newS = newS + bigLetter[s.charAt(i) - 48] + unit[sLength - i - 1];
} else if(flag == 2) {
// 转换小数部分(带单位)
newS = newS + bigLetter[s.charAt(i) - 48] + all[sLength - i - 1];
}}
return newS;
}/
把已经转换好的中文金额大写形式加以改进,清理这个字
符串里面多余的零,让这个字符串变得更加可观
注:传入的这个数应该是经过 splitNum() 方法进行处理,这个字
符串应该已经是用中文金额大写形式表示的
@param s String 已经转换好的字符串
@return 改进后的字符串
private String cleanZero(String s) {
// 如果传入的是空串则继续返回空串
}// 如果用户开始输入了很多 0 去掉字符串前面多余的‘零‘,使其看上去更符合习惯
while(s.charAt(0) == ‘零‘) {
// 将字符串中的 "零" 和它对应的单位去掉
s = s.substring(2);
if(s.length() == 0) {
return "零";
}}
// 字符串中存在多个‘零‘在一起的时候只读出一个‘零‘,并省略多余的单位
/ 由于本人对算法的研究太菜了,只能用4个正则表达式去转换了,各位大虾别介意哈... /
String regex1[] = {"零仟", "零佰", "零拾"};
String regex2[] = {"零亿", "零万", "零元"};
String regex3[] = {"亿", "万", "元"};
String regex4[] = {"零角", "零分"};
// 轮转换把 "零仟", 零佰","零拾"等字符串替换成一个"零"
for(int i = 0; i < 3; i ++) {
s = s.replaceAll(regex1[i], "零");
}// 第二轮转换考虑 "零亿","零万","零元"等情况
// "亿","万","元"这些单位有些情况是不能省的,需要保留下来
for(int i = 0; i < 3; i ++) {
// 当轮转换过后有可能有很多个零叠在一起
s = s.replaceAll("零零零", "零");
s = s.replaceAll("零零", "零");
s = s.replaceAll(regex2[i], regex3[i]);
}// 第三轮转换把"零角","零分"字符串省略
for(int i = 0; i < 2; i ++) {
s = s.replaceAll(regex4[i], "");
}// 当"万"到"亿"之间全部是"零"的时候,忽略"亿万"单位,只保留一个"亿"
s = s.replaceAll("亿万", "亿");
return s;
}}
谁帮我用ja正则表达式中的订单数字,支付金额,和时间解析出来。
String str = "尊敬的用户,您末位8237的订单,支付金额为0.01元,671906,15:08发送,请及时输入,切勿泄露,任何索取均为欺诈。";
String reg = ".末位(.)的订单.支付金额为([^元])元.(}System.out.println("n---------------------------------------------");d+),([d:]+)发.";
String a = str.replreturn "";aceAll(reg,"$1");
String b = str.replaceAll(reg,"$2");
String c = str.replaceAll(reg,"$3");
String d = str.replaceAll(reg,"$4");
求助js正则表达式关于金额的验证 怎么写
if("".equals(s)) {var exp = /^([1-9][d]{0,7}|0)(.[d]{1,2})?$/;
var num = '21022332.05';
if(exp.test(num)){
alert('right');
}else{
alert('wrong');
}
可验证 大于等于零,小于等于99999999.99 的数字
测试正确
用正则表达式吧
^[1-9]{1}[0-9]{2,7}[.]{8}[0-9]{9,10}$
JAVA金额大小写转化中的问题
var regStrs = [(C5<0,"计算错误,请重新计算",SUBSTITUTE(SUBSTITUTE(TEXT(INT(FIXED(ABS(C5))),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(C5),2),"[dbnum2]0角0分;;"&IF(ABS(C5)>1%,"整",)),"零角",IF(ABS(C5)<1,,"零")),"零分",)))
@param s String 要转换的字符串^(0|[1-9]d{0,11}).(dd)$是定义了金额的数字格式
(0|[1-9]d{0,11})是说或者是0, 或者1后边0~11个数字
.匹配小数点一个
(dd)匹配2个数字
js怎么判断输入的金额只能是小数点前10位,小数点后两位
/400,beos的,os可以不用输入小数点后面的:
type="text"
onchange="if(!/^d{1,10}(.d{1,2})?$/.test(this.value)){alert('输入错误')}"
/>
必须要写2位小数点:
type="text"
onchange="if(// 要把很多个重复的零变成一个零!/^d{1,10}.d{2}?$/.test(this.value)){alert('输入错误')}"
/>
正则:
var reg = /^d{1,10}(.d{1,2})?$/;
if(reg.test("123.3453")){
alert("错误");
}
求一个JS正则表达式用于格式化英文中的金额形式。如:25663333444,格式化后为:25,663,333,444
var s = '12345237987584564656,000.00';
var d=s.replace(/(d)(?=(d{3// 把整数部分和新截取的小数部分重新拼凑这个字符串})+(?!// 拾万位到仟万位d))/g, "$1,")
js怎么验证金额只能输入一个小数点。只要有一个小数点了,点就再也不能输入了。
v = v.replace(/^0+(d+.?d).$/, '$1');在input上加onchange,然后中写check(this.value)函数,函数内容是检查参数串中,是否有两个点,如果有的话就把input的值重置成第0字符,到第2个点前边一个字符的内容。或者是只保留一 @param s String 从命令行输入的那个数个点,过滤后边所有点后生成的字符串。
var p=^-?d+.?d$;
if(!p.test(你要测试的值)){
alert("浮点数格式错误");
}
python程序设计每种金额最少需要几张纸问题
python的
简单
的python的特点是一种语言代表了一种简单的意识形态。阅读一个良好的python程序就感觉像是在读英语,但英语很严格!这种伪代码的python的本质是它的优势之一。它可以让你专注于解决问题,而不是语言本身。
了解
正如你所看到的,python是非常容易使用。正如前面提到的,python有一个很简单的语法。
-免费,开源
python是floss(自由/开源软件)。简单地说,你可以自由地发布这个软件的拷贝,阅读它的源代码,它,把它的一部分用于新的自由软件。
floss是一个以社区为基础的知识共享的概念。这就是为什么python是那么好,原因之一
-它是一组想看看是谁创造并不断完善更好的python。
高级语言
当您使用python编程语言,你需要考虑如何管理底层细节,如程序使用的一类内存。点击看详细可移植性由于它的开源本质,python已经被移植在许多平台上(经过改动使它能够在不同的平台上工作)。如果你小心地避免使用依赖于系统的特性,那么你所有的python程序无需任何这些平台上运行。
这些平台,包括linux,windows,freebsd的,macintosh电脑时,solaris,os
/2,amiga上,aros,as
/390和z
/os,palm作系统,qnx,vms,psion公司,的acom
risc
os,vxworks的,夏普的zaurus,windows
ce和pocketpc的连!
解释性
这需要一些解释。
编译语言,如c或c
++程序可以写入到从源文件(即c或c
++)转换到您的计算机使用的语言(二进制代码,即0和1)。通过这个过程中,编译器和各种标志和选项。当你运行你的程序,链接器/加载器软件从硬盘你的程序到内存并运行。
的python,程序不需要编译成二进制代码。可以直接从源代码运行程序。在计算机内部,python解释器把源代码转换成中间形式称为字节码,然后把它翻译成机器语言的计算机并运行。事实上,因为你不再需要担心如何编译程序,如何保证正确的连接转载图书馆等,所有这些都使得使用python更加容易。因为你只需要你的python程序拷贝到另一台计算机,它可以工作,这也使得你的python程序更加便携。点击看详细的python支持面向对象的面向过程的编程也支持面向对象的编程。在这个过程中,面向对象语言中,程序是建立了由过程或仅仅是可重复使用的代码的功能。在面向对象的语言中,程序是由累积数据和功能的对象的组合。和ja相比其他主要的语言如c
++,python有实现面向对象编程一个非常强大和简单的方法。
可扩展性
如果您需要一段关键代码运行得更快或者希望某些算法不公开,你可以把你写在c或c的一部分++,然后在你的python程序来使用它们。
嵌整个就是说,如果是0.2String intOnly = s.substring(0, index);5或者1.00, 10.23, 12345.39, 1012345678.79样子的都符合条件入
可以嵌入的python你的c
/c
++程序中,让你的程序提供脚本功能。
丰富的库
python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式,文档生成,单元测试,线程,数据库,web浏览器,cgi,ftp,电子邮件,xml,xml-rpc,html,w文件,密码,gui(图形用户界面),tk和其他系统相关的作。请记住,只要是python的安装,所有这些功能都可用。这被称为python的“功能齐全”的概念。
除了标准库,还有许多其他高质量的库,如wxpython的,扭曲和python图像库等等。
js 或者 jquery 控制金额输入(可以输"0" , "0.0" ,"0.00" 小数点后最多俩位 .....)
/var reg = /^d.?d{0,2}$/; //正则表达式
alert("金额不能小于0");var text=$("#输入框ID").val(); //输入框内容
if(!re.test($("txtid").val())){ //验证
alert("提示内容");
}希望能对你有帮助
var reg=/^d+(.(d){1,2})?$/
var reg = /^d.?d{0,2}$/;
请教英文合同金额大写的正规表达方式
先用中文说一遍这个数吧,以防弄错。呵呵;一百二十三万四千五百六十七点八九美元。英文是:a million two dred thirty-four thousand and five dred and sixty-sn point eight nine dollars 顺利帮你学习一下吧。呵呵。million:百万thousand:千point:点 “a million”是“100万”,由于英文是没有“十万、万”这两个单位的,所以说“、十万、万”的时候用英文是用“千”作为单位,也就是“100个千、10个千”,所以上面我写的就是“two dred thirty-four thousand (234个千)”后面的比较简单,就不用说了吧。呵呵。 不知道你看不看得懂我的话。
PS:英文合同对于量值性的内容,如价格、数量、期限等,往往有十分严格的规范。一是在小写量值(数字)的后面用括号内的大写(文字数字)重写;二是量值单位准确无误;三是量值的大写要求顶格,前加动词say,单词之间疏密均匀,后加形容词only。其目的在// 以小数点为界分割这个字符串于防止篡改并表示醒目和严肃、正式等. 貌似是这样吧。咱没见过英文的合同。但据说是这样的。
望采纳$1,234,567.89:
One million two dred and thirty-four thousand five dred and sixty-sn point eight nine USA dollars
或者用Point Eighty-Nine Dollars也没有关系
可以全部字母都大写
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。