2012-05-03 7 views

Trả lời

2

Bạn có thể sử dụng chức năng InStr() cho việc này:

Dim positionOfMatchedString 
positionOfMatchedString= InStr(rs("mainVideoName"),"http://www.youtube.com") 

If positionOfMatchedString > 0 Then 
    // Do your stuff here 
End If 

Như Anthony chỉ ra, điều này sẽ cho bạn biết chuỗi2 được chứa trong chuỗi1. Bạn có thể viết nó như:

If positionOfMatchedString = 1 Then 

để kiểm tra nó bắt đầu với.

+0

Strings được lập chỉ mục từ 1 trong VB? :( –

+0

Nếu không tìm thấy chuỗi 2, InStr trả về 0. http://msdn.microsoft.com/en-us/library/wybb344c%28v=vs.85%29.aspx –

+0

@JamieDixon: a)> 0 kiểm tra string2 là _contained_ trong string1 nhưng không phải là string1 _startswith_ string2 (mặc dù xem xét bối cảnh URL _contains_ có khả năng là đủ) b) Trong VBScript bạn không thể Dimmension và gán một biến trong một câu lệnh đơn. – AnthonyWJones

10

Hãy thử điều này:

Function UrlStartsWith(string1, string2) 
    UrlStartsWith = InStr(1, string1, string2, 1) = 1 
End Function 

If UrlStartsWith(rs("mainVideoName"), "http://www.youtube.com") Then 


End If 

Bắt đầu với được thử nghiệm bằng cách sử dụng IntStr và đảm bảo rằng nó sẽ trả về 1 là vị trí bắt đầu rằng chuỗi tìm kiếm được tìm thấy. Vì bạn đang thử nghiệm một URL, mã trên sử dụng TextCompare để làm cho trường hợp không nhạy cảm.

1

Làm thế nào về ...

Dim s: s = "http://www.youtube.com" 
Dim l: l = Len(s) 

If Left(rs("mainVideoName"), l) = s Then 
    ' String begins with URL part '   
End If 
+2

Tôi cho rằng chữ thường 'L' là một tên tệ hại cho một biến, đặc biệt là khi nó được sử dụng thay cho một số. Tôi đã phải nhìn hai lần trước khi tôi nhận ra rằng bạn không chỉ so sánh chữ cái đầu tiên của 'rs (" mainVideoName ")'. –