我正在尝试编写一个函数来构建一个正则表达式,该函数可以测试字符串是否以字符串开头并包含另一个字符串.
function buildRegExp(startsWith,contains){
return new RegExp( ????? )
}
Run Code Online (Sandbox Code Playgroud)
例如:
buildRegExp('abc','fg').test('abcdefg')
Run Code Online (Sandbox Code Playgroud)
上面的表达式应该评估为true,因为字符串'abcdefg'以'abc'开头并包含'fg'.
'startsWith'和'contains'字符串可能相互重叠,因此正则表达式不能简单地搜索'startsWith'字符串,然后搜索'contains'字符串
以下内容也应该评估为真:
buildRegExp('abc','bcd').test('abcdefg')
Run Code Online (Sandbox Code Playgroud)
我不能使用简单的字符串函数.它需要是一个正则表达式,因为我将此正则表达式传递给MongoDB查询.
像这样的模式可以处理匹配字符串中startsWith/ containssubstrings重叠的情况:
/(?=.*bcd)^abc/
Run Code Online (Sandbox Code Playgroud)
即
return new RegExp("(?=.*" + contains + ")^" + startsWith);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |