mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
builtin: add string.contains_any() (#5963)
This commit is contained in:
parent
f269cbdc94
commit
f2c639c869
@ -743,16 +743,37 @@ pub fn (s string) count(substr string) int {
|
|||||||
return 0 // TODO can never get here - v doesn't know that
|
return 0 // TODO can never get here - v doesn't know that
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (s string) contains(p string) bool {
|
pub fn (s string) contains(substr string) bool {
|
||||||
if p.len == 0 {
|
if substr.len == 0 {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
s.index(p) or {
|
s.index(substr) or {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn (s string) contains_any(chars string) bool {
|
||||||
|
for c in chars {
|
||||||
|
if c.str() in s {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (s string) contains_any_substr(substrs []string) bool {
|
||||||
|
if substrs.len == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
for sub in substrs {
|
||||||
|
if s.contains(sub) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
pub fn (s string) starts_with(p string) bool {
|
pub fn (s string) starts_with(p string) bool {
|
||||||
if p.len > s.len {
|
if p.len > s.len {
|
||||||
return false
|
return false
|
||||||
|
@ -361,6 +361,23 @@ fn test_contains() {
|
|||||||
assert 'abc'.contains('')
|
assert 'abc'.contains('')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_contains_any() {
|
||||||
|
assert !'team'.contains_any('i')
|
||||||
|
assert 'fail'.contains_any('ui')
|
||||||
|
assert 'ure'.contains_any('ui')
|
||||||
|
assert 'failure'.contains_any('ui')
|
||||||
|
assert !'foo'.contains_any('')
|
||||||
|
assert !''.contains_any('')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_contains_any_substr() {
|
||||||
|
s := 'Some random text'
|
||||||
|
assert s.contains_any_substr(['false', 'not', 'rand'])
|
||||||
|
assert !s.contains_any_substr(['ABC', 'invalid'])
|
||||||
|
assert ''.contains_any_substr([])
|
||||||
|
assert 'abc'.contains_any_substr([''])
|
||||||
|
}
|
||||||
|
|
||||||
fn test_arr_contains() {
|
fn test_arr_contains() {
|
||||||
a := ['a', 'b', 'c']
|
a := ['a', 'b', 'c']
|
||||||
assert a.contains('b')
|
assert a.contains('b')
|
||||||
|
Loading…
Reference in New Issue
Block a user