字符串的正则表达式以X开头并包含Y.

Wil*_*sen 5 javascript regex

我正在尝试编写一个函数来构建一个正则表达式,该函数可以测试字符串是否以字符串开头并包含另一个字符串.

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查询.

p.s*_*w.g 9

像这样的模式可以处理匹配字符串中startsWith/ containssubstrings重叠的情况:

/(?=.*bcd)^abc/
Run Code Online (Sandbox Code Playgroud)

return new RegExp("(?=.*" + contains + ")^" + startsWith);
Run Code Online (Sandbox Code Playgroud)