验证一个长字符串是否有足够的可断开空间用于显示



我在打印表格内容时遇到问题,因为用户输入了没有空格的垃圾字符串,所以我无法以一致的方式对表格单元格内容进行换行。。。因此,我想在输入进入打印阶段之前对其进行验证,避免使用打印引擎不太好或不完全支持的CSS。

我想限制连续字符,所以我想出了这个解决方案,但不确定这是否真的是最好的方法。。。

const limit = 25; // an abitrary number
/* a large chunk of text maybe containing 
spaces to be aligned with data in a table */
let str = some_user_input;
/* split the string to array values using 
any whitespace (added 'g' just for safety sake) */
if(str.length){
let spaced = str.split(/s+/g);
//check we have array
if(spaced.length){
//check array items for exceeding contiguous character limit
for(let i = 0; i < spaced.length; i++){
if(spaced[i].length > limit){
return false;
}
}//endLoop
}
else{
if(str.length > limit) return false;
}
}
return true;

由于您使用的是regexp,我可能只会使用它来检查字符串中是否存在不带空格的连续字符。类似于:

const limit = 4;
const reLimit = new RegExp(`\S{${limit},}`);
const validate = (str) => !reLimit.test(str);
console.log(validate("foo bar")) // true
console.log(validate("foo barz")) // false

相关内容

  • 没有找到相关文章

最新更新