前端字符串长度,时间处理

本文提供了一系列JavaScript实用函数,包括计算字符串长度(考虑中文字符)、检查输入是否为非负整数、将日期对象转换为指定格式的字符串以及获取当前时间的字符串表示。这些函数适用于多种场景,如表单验证、日期处理等。
//获取字符串长度,不区分中英文
export const getDataLength = (fData) => {
  fData = fData + '';
  var intLength = 0
  for (var i = 0; i < fData.length; i++) {
    //如果是中文,则为两个
    /* if ((fData.charCodeAt(i) < 0) || (fData.charCodeAt(i) > 255))
       intLength = intLength + 2
     else*/
    intLength = intLength + 1
  }
  return intLength;
};

//判断是否为数字,不能为负数
export const checkHkzh = (fData) => {
  fData = fData + '';
  /* var regPos = "^\\d+$";
   /!*!/ ^\d+$/!*!/ // 非负整数 / ^\\d + $ /
   // var regNeg = /^\-[1-9][0-9]*$/; // 负整数
   if (regPos.test(fData)) {
     return true;
   } else {
     return false;
   }*/

  if (!isNaN(fData)) {
    return true;
  } else {
    return false;
  }
};

//将日期转换为字符串 格式“yyyy-MM-dd HH:MM:SS” 2018-08-29 09:30:32
export const converDateToString = (time) => {
  var year = time.getFullYear(); //得到年份
  var month = time.getMonth();//得到月份
  var date = time.getDate();//得到日期
  var day = time.getDay();//得到周几
  var hour = time.getHours();//得到小时
  var minu = time.getMinutes();//得到分钟
  var sec = time.getSeconds();//得到秒
  month = month + 1;
  if (month < 10) month = "0" + month;
  if (date < 10) date = "0" + date;
  if (hour < 10) hour = "0" + hour;
  if (minu < 10) minu = "0" + minu;
  if (sec < 10) sec = "0" + sec;
  var time = "";

  //精确到分
  time = year + "-" + month + "-" + date + " " + hour + ":" + minu + ":" + sec;
  return time;
};

//获取当前时间
export const getNowFormatDate = (format) => {
  var now = new Date();
  var year = now.getFullYear(); //得到年份
  var month = now.getMonth();//得到月份
  var date = now.getDate();//得到日期
  var day = now.getDay();//得到周几
  var hour = now.getHours();//得到小时
  var minu = now.getMinutes();//得到分钟
  var sec = now.getSeconds();//得到秒
  month = month + 1;
  if (month < 10) month = "0" + month;
  if (date < 10) date = "0" + date;
  if (hour < 10) hour = "0" + hour;
  if (minu < 10) minu = "0" + minu;
  if (sec < 10) sec = "0" + sec;
  var time = "";
  //精确到天
  if (format == 1) {
    time = year + "-" + month + "-" + date;
  }
  //精确到分
  else if (format == 2) {
    time = year + "-" + month + "-" + date + " " + hour + ":" + minu + ":" + sec;
  }
  return time;
}


前端开发中,获取字符串长度是常见的操作之一。JavaScript 提供了简单而直接的方式实现这一功能。 ### 获取字符串长度的基本方法 最常用的方法是使用字符串对象的 `length` 属性。该属性返回字符串中字符的数量,包括空格和特殊字符。例如: ```javascript var str = "Hello, world!"; console.log(str.length); // 输出 13 ``` 此方法适用于大多数场景,特别是在需要快速获取字符串长度时非常高效[^3]。 ### 处理多字节字符的情况 需要注意的是,在某些情况下,如包含 Unicode 字符或中文字符等多字节字符时,`length` 属性可能无法准确反映实际的字节长度。针对这种需求,可以自定义函数来计算字符串的实际字节长度。以下是一个示例函数,它遍历每个字符并根据其编码范围判断占用的字节数: ```javascript function getByteLength(str) { var byteLength = 0; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 255) { byteLength += 2; // 假设为双字节字符 } else { byteLength += 1; } } return byteLength; } var exampleStr = "你好,世界!"; console.log(getByteLength(exampleStr)); // 输出 14(假设每个汉字占2字节) ``` 这种方法特别适用于需要按字节限制输入长度的应用场景,比如表单验证或数据传输优化[^2]。 ### 字符串截取与处理 除了获取长度外,前端开发还经常涉及字符串的截取和处理。例如,可以结合 `slice`、`substring` 或 `substr` 方法进行部分提取,并根据需求添加后缀以表示内容被截断。这在展示长文本摘要时非常有用。 ```javascript String.prototype.getShortForm = function(len, alt) { var tempStr = this; if (this.getLength() > len) { if (!alt) { alt = "......"; } var i = 0; for (var z = 0; z < len; z++) { if (tempStr.charCodeAt(z) > 255) { i += 2; } else { i += 1; } if (i >= len) { tempStr = tempStr.slice(0, (z + 1)) + alt; break; } } } return tempStr; }; ``` 以上代码片段展示了如何基于字节长度字符串进行截取,并自动附加省略号作为后缀[^2]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值