반응형
구글시트에 사용자가 전화번호를 입력할때
010-XXXX-XXXX
010XXXXXXXX
이런 두가지 방식으로 입력 할 수 있을것이다.
정규식을 통해,
숫자로만 입력된 전화번호에 하이픈을 붙여 전화번호 양식으로 변경하는 방법과
입력된 전화번호양식의 숫자만 추출하는 법을 알아본다.
function convertPhoneNumber(value) {
value = '01044459991'
var convertValue = value.replace(/[^0-9]/g, '').replace(/^(\\d{2,3})(\\d{3,4})(\\d{4})$/, `$1-$2-$3`);
console.log(`###### 입력한 값\\t\\t\\t==> ${value}`);
console.log(`## 전화번호 양식으로 전환\\t\\t==> ${convertValue}`);
console.log(`## 전화번호 양식의 하이픈 제거\\t==> ${convertValue.replace(/[^0-9]/g, '')}`);
}
그럼 이제 edit event를 통해, 값을 변경해주도록 해본다.
A 와 C에 전화번호를 입력하면
B와 D에 변환된 값을 자동으로 뿌려줘본다.
/**
* edit event
* @param {object} e = event
*/
function onEdit(e) {
const getValue = e.value;
const spreadSheet = e.source;
const sheetName = spreadSheet.getActiveSheet().getName();
const column = e.range.getColumn();
const row = e.range.getRow();
const activeCell = spreadSheet.getActiveCell();
if ( sheetName == "regex" ) {
if ( column == 1 && row >= 1 ) {
activeCell.offset(0, 1).setValue(convertPhoneNumber(getValue));
} else if ( column == 3 && row >= 1 ) {
activeCell.offset(0, 1).setValue(convertPhoneNumberText(getValue));
}
}
}
/**
* 전화번호 양식으로 변환
* @param {String} value = value
*/
function convertPhoneNumberTemplate(value) {
var convertValue = value.replace(/[^0-9]/g, '').replace(/^(\\d{2,3})(\\d{3,4})(\\d{4})$/, `$1-$2-$3`);
return convertValue;
}
/**
* 전화번호 하이픈 제거
* @param {String} value = value
*/
function convertPhoneNumberText(value) {
var convertValue = value.replace(/[^0-9]/g, '');
return convertValue;
}
화면 캡처를 이용해 변경되는 내용을 보여주기 위해 offset을 사용했고,
실제로는 offset을 사용하지 않으면 자동으로 전화번호를 변경해준다.
// 자기 자신의 값을 변경
activeCell.setValue(convertPhoneNumber(getValue));
// 다음 셀의 값을 변경
activeCell.offset(0, 1).setValue(convertPhoneNumber(getValue));
반응형
'GCP > Apps Script' 카테고리의 다른 글
Apps Script로 cafe24의 API를 지속적으로 사용을 위해 토큰 유지 시키기 (1) | 2023.09.27 |
---|---|
Apps Script로 Google Sheets 셀 병합하기 (1) | 2023.08.24 |
Apps Script로 Google Sheets의 a1notaion을 getRange에서 사용되는 row, column, numRows, numColumns 범위로 변경 (0) | 2023.06.22 |
Google Sites에서 Apps Script로 배포한 webapp 으로 파라미터 넘기기 (0) | 2023.06.15 |
Apps Script로 장 종료 후 특정 주식의 종가 정보 카카오톡으로 전송하기 (0) | 2023.06.12 |