정보 모든 유니코드에 대한 정규식
본문
멘션이나 해시태그에서 각 나라의 언어가 모두 되어야 될 것 같아서, 한국어, 중국어, 일본어 지원되는 코드를 찾아 봤었고
냑에는 멘션 자바스크립트가 다음과 같이 되어 있는데
flag = flag.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
if (should_startWithSpace) {
flag = '(?:^|\\s)' + flag;
}
_a = decodeURI("%C3%80");
_y = decodeURI("%C3%BF");
space = acceptSpaceBar ? "\ " : "";
regexp = new RegExp(flag + "([가-힣ㄱ-ㅎA-Za-z" + _a + "-" + _y + "0-9_" + space + "'\.\+\-]*)$|" + flag + "([^\\x00-\\xff]*)$", 'gi');
match = regexp.exec(subtext);
1. -[]/{}()*+?.\^$|
3. ?:^| \s
5. https://www.fileformat.info/info/unicode/char/c380/index.htm
6. https://www.fileformat.info/info/unicode/char/c3bf/index.htm
7. 한글 가-힣 초성 ㄱ-ㅎ 영어 A-Za-z 숫자 0-9
아는 것만 적어봤습니다.
내용상으로 보면 한문을 못찾을 것 같습니다.
찾아보면 5번,6번처럼 유니코드로 범위를 정해 주는 식이 많이 있는데, https://baejangho.com/m/36?category=680642
아주 간단하에 모든 유니코드에 대한 간단한 정규식이 다음과 같습니다.
\p{L}
그래서 해시태그에 대한 정규식은
#[\p{L}0-9_]+
으로 될 것 같습니다.
이모지에 대한 정규식은
/[\u{1f300}-\u{1f5ff}\u{1f900}-\u{1f9ff}\u{1f600}-\u{1f64f}\u{1f680}-\u{1f6ff}\u{2600}-\u{26ff}\u{2700}-\u{27bf}\u{1f1e6}-\u{1f1ff}\u{1f191}-\u{1f251}\u{1f004}\u{1f0cf}\u{1f170}-\u{1f171}\u{1f17e}-\u{1f17f}\u{1f18e}\u{3030}\u{2b50}\u{2b55}\u{2934}-\u{2935}\u{2b05}-\u{2b07}\u{2b1b}-\u{2b1c}\u{3297}\u{3299}\u{303d}\u{00a9}\u{00ae}\u{2122}\u{23f3}\u{24c2}\u{23e9}-\u{23ef}\u{25b6}\u{23f8}-\u{23fa}]/ug
정규식은 어렵지만 구글로 하다보면 조금씩 해결되네요
추천0 비추천 0
댓글목록 0
등록된 댓글이 없습니다.