textarea换行字符数统计-ios兼容的问题(已angular为例)

在前端开发中,使用textarea并结合Angular.js进行双向数据绑定时,遇到iOS设备上换行符计数异常,每个换行占用两个字符。解决方案是结合ng-maxLength和maxLength属性来正确限制输入长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

textarea换行字符数统计

通过length获取双向绑定的字符串长度时,发现IOS上一个换行占两个字符,
解决:ng-maxLength + maxLength
ng-maxlength 指令将限制添加到输入字段和表单的验证器中。
ng-maxlength 与 HTML 中的 maxlength 属性不同,这将阻止用户键入超出限制数量的字符。
ng-maxlength 指令不会阻止用户键入超出限制数量的关闭字符,但如果这样做,则该表格将无效。
<input type=“text” ng-maxLength=“dealCurrentMaxLen(paramsText,150)” maxLength=“{{maxLength}}” ng-model=“paramsText”/>
字数限制显示:{{paramsText.length}}/150
$scope. paramsText =“”;    //双向绑定的值
$scope.maxLength=150//通过动态设置input的maxlength值来兼容ios


$scope.dealCurrentMaxLen(str, maxLen) {    //初始化及输入时动态计算maxLength的值及限制用户输入超出范围的字符
  if (!!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {    //ios设备
    let reg = new RegExp(/\n/g);
    let lineNum = str.match(reg);
    $scope.maxLength=lineNum ? lineNum.length + maxLen : maxLen;
    return lineNum ? lineNum.length + maxLen : maxLen
   } else {
    return maxLen
  }
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值