給輸入框數字實時新增千分位符,二次封裝為金額元件

2021-10-18 23:15:14 字數 3590 閱讀 1726

1.輸入數字時新增千分位

2.展示數字的最高位單位便於檢視

3.為了方便使用,結合element ui的input框進行封裝

html部分

ref=

"money"

v-model.trim=

"money"

:placeholder=

"placeholder"

@keyup.enter.native=

"moneychange()"

@blur=

"moneychange()"

/>

新增千分位的方法

fmresource

(s)if

(s ===

'-')

var lose =

''// 負號

if(s <0)

s = s +

''var l = s.

split

('.')[

0].split(''

).reverse()

;var r ='';

var t =

''if

(s.indexof

('.'

)>-1

) r =

('.'

+ s.

split

('.')[

1])//取到小數部分

}else

}for

(let i =

0; i < l.length; i++

)return lose +

''+ t.

split(''

).reverse()

.join(''

)+ r// 拼接

},

輸入時實時獲取游標位置,並呼叫新增千分位方法

formatnumber

(value, name))}

)}

使用element ui的tooltip,展示最高位單位,方便使用

html部分

"dark"

:content=

"tooltips" placement=

"top"

>

ref=

"money"

v-model.trim=

"money"

:placeholder=

"placeholder"

@keyup.enter.native=

"moneychange()"

@blur=

"moneychange()"

>

<

/el-input>

<

/el-tooltip>

新增計算屬性

computed:

else

return

'......'

}}

由於專案中用到金額輸入框較多,因此封裝成元件便於呼叫

用v-bind="$attrs"以及v-on="$listeners"接收不作為 prop 的屬性和事件

子元件

"dark"

:content=

"tooltips" placement=

"top"

>

ref=

"money"

v-model.trim=

"money"

:placeholder=

"placeholder"

v-bind=

"$attrs"

v-on=

"$listeners"

@input=

"formatnumber(money,'money')"

@keyup.enter.native=

"moneychange()"

@blur=

"moneychange()"

>

>元<

/template>

<

/el-input>

<

/el-tooltip>

<

/template>

export

default

, placeholder:

, enterfuc:},

data:

, template:},

data()

},computed:

else

return

'......'}}

, watch:},

mounted()

, methods:

if(s ===

'-')

var lose =

''// 負號

if(s <0)

s = s +

''// n = n > 0 && n <= 20 ? n : 2;.tofixed(n)

// s = parsefloat((s + "").replace(/^[^\d.-]/g, "")) + "";

var l = s.

split

('.')[

0].split(''

).reverse()

;var r ='';

var t =

''if

(s.indexof

('.'

)>-1

) r =

('.'

+ s.

split

('.')[

1])}

else

}for

(let i =

0; i < l.length; i++

)return lose +

''+ t.

split(''

).reverse()

.join(''

)+ r// 拼接},

formatnumber

(value, name)

)/g, '$1 ').replace(/ $/, '')

// 改後字串中原游標之前,的個數

const newlinenumofcursorleft =

(newvalue.

slice(0

, cursorindex)

.match

(/,/g)||

).length

// 游標在改後字串中應在的位置

const newcursorindex = cursorindex + newlinenumofcursorleft - linenumofcursorleft

// 賦新值,nexttick保證-不能手動輸入或刪除,只能按照規則自動填入

this

.$nexttick((

)=>)}

)},moneychange()

}}<

/script>

父元件中 除了增加的引數外,其他引數用法及作用與element ui相同

給數字新增千分位分隔符

法一 int i 0,j 0 void recombination char a,long long n if n 10 0 include intmain recombination a,n for k j k 0 k printf c a k return0 注意 此程式可在educoder中實...

數字增加千分位符

匹配input內只能輸入數字和 逗號或者說是千分位符 ps 使用千分位符時,一般只保留2位小數 如果沒有特殊說明可以用html中的 number屬性可以輸入 e e 是科學計算中的自然數 所以是可以輸入的 限制只能輸入數字 和 if this val length 1 else 數字裝千分位格式,千...

C 數字帶逗號(千分位符 金錢千分位字元)

帶了逗號之後 數字就變成字串了 不再是數字了。1 c 中用最簡單的方法把數字 不含小數 轉換為千分位格式 如1234567變成1,234,567 方法 x.tostring 或 1234567.tostring n0 2 c 中把數字轉換成帶兩位小數的千分位字元 如1234567.891變成1,23...