проверить, что длинная строка имеет достаточно разрывных пробелов для отображения - PullRequest
0 голосов
/ 18 марта 2020

У меня были проблемы с печатью содержимого таблицы, когда пользователи вводили строки мусора без пробелов, поэтому я не мог согласованно переносить содержимое ячеек таблицы ... поэтому я хотел проверить ввод перед тем, как он попадет в этап печати, избегая CSS, который не был великолепен или полностью не поддержан механизмом печати. ​​

Я хотел ограничить смежные символы, поэтому я пришел к этому решению, но не уверен, действительно ли это лучший способ для go об этом ...

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;

1 Ответ

1 голос
/ 20 марта 2020

Поскольку вы используете регулярное выражение, я бы, вероятно, просто использовал его, чтобы проверить, есть ли в строке непрерывные символы без пробелов. Что-то вроде:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...