해결된 질문
작성
·
281
답변 1
0
안녕하세요
Json 데이터가 사용자의 입력에 따라 다양하게 입력될 때가 많이 있습니다.
실무에서는 보통 사용자가 입력하는 입력폼에 허용되는 입력을 제약을 둘경우가 있습니다.
영문만 가능하도록 하거나 한글 영문 숫자 그리고 몇몇 특수 문자만 가능하도록 설정할 수 있습니다.
그 부분은 TextField 에 inputFormatters를 이용하여 처리가 가능합니다.
TextField(
controller: controller.nicknameController,
inputFormatters: <TextInputFormatter>[
FilteringTextInputFormatter.allow(RegExp(r'[ㄱ-ㅎ|ㅏ-ㅣ|가-힣|ᆞ|ᆢ]')),
FilteringTextInputFormatter.allow(RegExp(r'[a-z|A-Z|0-9|ㄱ-ㅎ|ㅏ-ㅣ|가-힣|ᆞ|ᆢ]'))
],
),
이렇게 입력폼에 제약을 두는 방식으로 어느정도 방어를 할 수 있습니다.
그리고 추가적으로 이미 다양한 데이터가 쌓여있는 상태라고 가정한다면 보여주는 화면에서 특정 문자를 치환해주는 방식으로 대응을 할 수 있습니다.
위에 캡쳐해주신 데이터를 바탕으로 특수기호 ^ 를 빼주거나 띄어써주는 걸로 바꿔준다면
var text = 'Grady^Elieen';
var newText= text.replaceAll(RegExp(r'\^'),' ');
print(newText);
위와 같이 변경을 해줄 수 있습니다.
또한 Text길이가 긴경우는 Text 옵션에 overflow를 설정해서 ... 처리를 해주거나 할 수 있겠습니다.
Text(
'텍스트가 긴 경우 maxLines 옵션을 1줄로 세팅하고 overflow를 세팅합니다. ',
maxLines: 1,
overflow: TextOverflow.ellipsis,
);
답변 감사합니다!! 저 데이터의 경우 네이버API에서 날라올때 이미 ^ 이런 형태가 붙어서 나오는 경우인데 이것도 해결 방법이 같다고 볼 수 있나요??