2013-08-13 1 views
2

무엇 루비 등을 사용하여 전자 메일 주소의 @ 기호 앞에 4 개 문자를 숨길 수있는 가장 좋은 방법입니다숨기기 부분

[email protected] = fake####@example.com 

내가 평가의 목록을 표시 할 때보기에 사용되는 것 전체 주소를 표시하고 싶지 않습니다.

내 먼 길 내내 시도 :

name = '[email protected]'.split("@")[0] 
email = '[email protected]'.split("@")[1] 
new_address = name [0..-4] + "@" + email 

답변

0

당신이 일치하고 이메일 주소를 대체하기 위해 정규식을 사용할 수 있습니다. 4 개의 연속 된 문자 다음에 @를 찾아서 대체 문자열을 ####@으로 지정하십시오. 루비에서 Regex는 매우 효율적으로 간주됩니다. 이 짧은 이름을 처리하지 않습니다 /[a-z.]{4}@/

1
'[email protected]'.gsub(/.{4}@/, '####@') 
=> fake####@example.com 

그러나 첫 경기 ([email protected] => [email protected])

+0

'와 같은 짧은 이름 처리'[email protected]'.gsub을 (/. {4} @/'#### @') == "가짜 #### @ example.com "''나에게'false'를주었습니다 – Salil

+2

@Salil : 큰 따옴표로 묶인 줄을 사용하고 있습니다 ng. 큰 따옴표로 묶인 문자열은 문자열 보간을 수행합니다. '# @ example'은 "인스턴스 변수'@ example'의 내용을이 시점에서 문자열에 삽입하는 것을 의미합니다." '@ example'은 아마도 존재하지 않을 것이기 때문에'nil'으로 평가 될 것이기 때문에 여러분이 비교하는 마지막 문자열은''fake ###. com ''이 될 것입니다. JörgWMittag @ –

+0

: - (./{4} @/'#### @') ' "[email protected]".gsub == "가짜 ### \ # @ example.com은"'나 사실 준다 – Salil