thy中常用的金额、数字、百分比
金额格式化:
格式化为1000,000,000.23元的样式
{
field : 'amount',
title : '金额(元)', align : 'right',
formatter : function (value , row, index) {
return formatMoney(value);
}
},
/**
* 把金额格式成为每三位一逗号分隔,显示小数位数自己定义,默认是两位
* @param value 金额
* @param type 小数位数, 默认是两位小数
* @returns {*}
*/
var formatMoney = function (value, type) {
if (value == null || value == '') {
return '';
}
if (type == null || type == '') {
type = 2;
}
return value.toFixed(type).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
};
百分比-BigDecimal
//费率,保留一位小数
projectBean.setRate(rate.multiply(BigDecimal.valueOf(100)).setScale(1));
html页面的占比
在html页面处理rate不推荐,最好还是在后头或者js中处理,下面这个作为了解,使用的是numbers.formateDecimal方法
<label class="col-sm-3 control-label">占比:</label>
<div class="col-sm-8">
<input id="rate" name="rate"
th:value="${#numbers.formatDecimal(rate*100,2,1)}+'%'"
class="form-control" type="text" readonly>
产生任意的字母+3位数字
/**
* 时间格式化
*/
protected static final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
/**
* 产生唯一 的序列号。
*
* @return String
*/
public static String getSerialNumber() {
/*int hashCode = UUID.randomUUID().toString().hashCode();
if (hashCode < 0) {
hashCode = -hashCode;
}
String hashCodeString = String.valueOf(hashCode);
*/
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String num = "0123456789";
String randomChar = String.valueOf(chars.charAt((int)(Math.random() * 26)));
String randomNum = String.valueOf(num.charAt((int)(Math.random() * 10)))+String.valueOf(num.charAt((int)(Math.random() * 10)))+String.valueOf(num.charAt((int)(Math.random() * 10)));
return sdf.format(DateUtil.getNow()).substring(2, 6)+randomChar + randomNum;
}
数值占比-BigDecimal的除法
//占比
BigDecimal productAccount = productDO.getProductAccount();
BigDecimal assetAmount = internalAssetDO.getAssetAmount();
if (productAccount != null && assetAmount != null) {
//保留占比两位小数
productDO.setProductAssetScale(productAccount.divide(assetAmount,2,BigDecimal.ROUND_HALF_UP));
}
手机号、身份证格式
$(".mobilePhone").blur(function () {
var str = $(this).val();
if (str != "" && str != null) {
var re = /^1\d{10}$/;
if (!re.test(str)) {
$(this).val("");
alert("手机号格式不正确");
return;
}
}
});
$(".cardid").blur(function () {
var str = $(this).val();
if (str != "" && str != null) {
var re = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (!re.test(str)) {
$(this).val("");
alert("身份证格式不正确");
return;
}
}
});
input输入过程中校验数字
<div class="col-sm-3">
<input id="personBankNumber2" name="bankNumber" class=" bankno" type="text" required>
<span class="personBankNumber2Validate" style="color: red;" ></span>
</div>
//个人放款银行账号输入校验,没有数据时输入
$(".bankno").blur(function () {
var str = $(this).val();
if (str != "" && str != null) {
var re = /^[0-9]\d{10,19}$/;//这里表示的是11位到20位的都接受
if (!re.test(str)) {
$(this).val("");
$(this).siblings(".personBankNumber2Validate").html("请输入正确银行卡号")
}else {
$(this).siblings(".personBankNumber2Validate").html('');
}
}else{
$(this).siblings(".personBankNumber2Validate").html('');
}
});