当前位置: 首页 > 知识库问答 >
问题:

请问如何写html只能纯数字过长自动换行+自动去掉尾数0的number textarea?

司易安
2023-11-14

请问如何写html只能纯数字过长自动换行+自动去掉尾数0的number textarea?
目前用input number type只能一行,假设宽度只能100,大数量很多数字会被吃掉
想要多的数字跨行并且去掉尾数为0的如

123456789.234000

变成

1234566789.234

vue 的 data 取值还是能取得 123456789.234000 而不是 123456\n789.2\n34

共有2个答案

壤驷麒
2023-11-14

是这样吗? textarea_number_data 就是要获取的值 textarea_number 是显示值

<script setup>import {ref} from "vue";const textarea_number_data = ref();const textarea_number = ref();const keyupNumber = () => {    textarea_number_data.value = textarea_number.value.replace(/[^\d.]/g, "").replace(/\.(?=.*\.)/g, "");    console.log(textarea_number_data.value)    textarea_number.value = textarea_number_data.value.match(/.{1,6}/g).join("\n");}</script><template><textarea v-model="textarea_number" @keyup="keyupNumber()"></textarea></template>
齐英韶
2023-11-14

您可以使用 HTML 的 <textarea> 元素并设置其 wrap 属性为 hard,以达到自动换行的效果。然后,您可以通过 JavaScript 获取和处理这个文本区域的内容,以实现自动去除尾数 0 的功能。

以下是一个可能的实现:

<template>  <div>    <textarea       :value="formattedNumber"       @input="updateNumber"       wrap="hard"       style="width: 100px; height: 200px;"    ></textarea>  </div></template><script>export default {  data() {    return {      number: '',      formattedNumber: '',    };  },  methods: {    updateNumber() {      let str = this.number.toString();      let parts = str.split('.');      let integerPart = parts[0];      let decimalPart = parts[1] ? parts[1] : '0';      let formattedIntegerPart = '';      let formattedDecimalPart = '';      for(let i = 0; i < integerPart.length; i++) {        if(integerPart[i] != '0' || formattedIntegerPart.length == 0) {          formattedIntegerPart += integerPart[i];        } else if(integerPart[i] == '0' && formattedIntegerPart.length != 0) {          break;        }      }      for(let i = 0; i < decimalPart.length; i++) {        if(decimalPart[i] != '0' || formattedDecimalPart.length == 0) {          formattedDecimalPart += decimalPart[i];        } else if(decimalPart[i] == '0' && formattedDecimalPart.length != 0) {          break;        }      }      this.formattedNumber = formattedIntegerPart + '.' + formattedDecimalPart;    },  },  mounted() {    this.number = this.$data; // Assuming the initial value is stored in $data. You may need to adjust this line according to your actual situation.    this.updateNumber(); // Call this method to format the number initially.  },};</script>

这段代码的核心部分是 updateNumber 方法,它负责处理 <textarea> 的输入事件,将数字格式化为指定的形式。它首先将数字分割为整数部分和小数部分,然后分别对整数部分和小数部分进行处理。对于整数部分,它只保留每三位数字后的第一个非零数字,对于小数部分,它只保留每三位数字后的第一个非零数字。最后,它将格式化后的整数部分和小数部分重新组合起来,并设置为 <textarea> 的值。

 类似资料:
  • 问题内容: 我无法解决这个问题,感到很傻,但是如何关闭自动换行功能?css 属性可以通过强制启用,但不能强制 关闭 (只能与value 一起保留)。 如何强制自动换 行 ? 问题答案: 您需要使用CSS 属性。 特别是和是最常用的值。第一个似乎是您所追求的。

  • 我知道有一个有效的注释,它指示spring根据JSR-303验证一个控制器参数,在这个示例中: 但我希望能够以某种方式配置Spring,以便在所有控制器中启用验证,而无需明确指定有效的注释。 这有可能吗?一些Spring配置?利用AOP?。。。

  • 问题内容: 我的内部具有以下样式: 一旦向表中添加了足够的数据,这将显示一个垂直滚动条。但是,添加新数据后,我希望该元素自动滚动到底部。 我可以使用哪些JavaScript代码执行此操作?我愿意在必要时使用JQuery中的选项,但希望使用JavaScript解决方案。 问题答案: 如果您不知道何时将数据添加到,则可以设置一个间隔,每隔几秒钟将元素的scrollTop更新为其scrollHeight

  • 问题内容: 如何显示带有自动换行符的长字符串,网站地址,单词或符号集,以保持div宽度?我猜是一个自动换行。通常添加空格是可行的,但是是否有CSS解决方案,例如自动换行? 例如,它(非常讨厌)与div重叠,强制水平滚动等。 我可以在上面的字符串中添加什么以使其完全适合div中的几行或浏览器窗口? 问题答案: 长话短说: 就CSS解决方案而言,您必须:强制元素显示滚动条,并仅剪切掉任何多余的文本。有

  • 问题内容: 我已经使用htmldoc一段时间了,但是遇到了一些相当严重的限制。我需要最终解决方案才能在Linux机器上工作。我将从Perl应用程序调用此库/实用程序/应用程序,因此任何Perl接口都将是一个奖励。 问题答案: 注意:此答案来自2008年,现在可能不正确;请检查其他答案 PrinceXML是我见过的最好的XML(它解析常规HTML以及XML / XHTML)。最好吗?好吧,它通过了a