2017-12-21 10 views
0

제공된 문자열에 10 자리가 넘는 숫자가 포함되어 있는지 확인하고 싶습니다.문자열에 긴 (+10 자리) 숫자가 포함되어 있으면 true를 반환합니다.

exampleString = aaa123aaa12345aaaa <--- not true 
exampleString = 12345678 <--- not true 
exampleString = 1234567,12345,123345 <--- not true 
exampleString = aaaa123456789aaaa124aaa <-- true 

개별 문자열에 숫자를 추출한 다음 길이가 10보다 큰지 확인하는 등의 작업을 시도했지만 실패했습니다.

도움이나 제안이 있으십니까?

+3

[정규식 (https://en.wikipedia.org/wiki/Regular_expression#Basic_concepts)? – Psytho

+0

문자열의 각 요소에 대해'Len' 함수를 사용할 수 있으며 숫자가 IsNumeric()인지 확인할 수 있습니다 – danieltakeshi

답변

3

간단한 Like은 어떻습니까?

if str like "*###########*" then ... 
+1

11이어야합니다 # # – JohnyL

+1

완벽! 전에 내가 오퍼레이터처럼 들었던 게 아니야? 고맙습니다! – Kirszu

0

RegEx 객체를 사용 :

Option Explicit 

Sub TestReg() 

' sub to test RegEx10Digits function 

Dim exampleString As String 

exampleString = "aaaa123456789aaaa124aaa" 
MsgBox RegEx10Digits(exampleString) 

End Sub 

Function RegEx10Digits(RegString As String) As Boolean 

' RegEx variables 
Dim Reg As Object 
Dim RegMatches As Variant 

RegEx10Digits = False 

Set Reg = CreateObject("VBScript.RegExp") 
With Reg 
    .Global = True 
    .IgnoreCase = True 
    .Pattern = "\d{11,}" ' Match any set of 10+ digits 
End With 

Set RegMatches = Reg.Execute(RegString) 
If RegMatches.Count >= 1 Then ' make sure there is at least 1 match 
    RegEx10Digits = True 
End If 

End Function 
+0

@JohnyL은 10을 포함하여 생각했습니다 - 감사합니다 :) –

+1

왜 여전히 {10,}이 있습니까? : ( – JohnyL

+0

@ JohnyL 어디 ??? ???) –

1
Function IsMore10Digits(strVal) 
    With CreateObject("VBScript.RegExp") 
     .Pattern = "\d{11,}": IsMore10Digits = .Test(strVal) 
    End With 
End Function 
+0

짧은 버전 : –

+0

@ShaiRado 확실히;) – JohnyL