【发布时间】:2017-11-29 03:22:51
【问题描述】:
我想要一个给定的正则表达式来匹配整个字符串。例如,当给定一个正则表达式/abc/ 时,它应该只匹配字符串"abc" 而不是"abcd"。我已经搜索了上述问题,它的情况与我的情况相似。这里的区别在于,正则表达式不是直接写在我的代码中的。所以不能直接在源码中将/abc/改成/^abc$/。
假设,我想要一个带有两个参数的函数:一个“正则表达式”(例如/abc/)和一个string(例如'abc')。当且仅当给定的正则表达式匹配 whole 字符串时,该函数才返回匹配的结果,否则返回 null。
我正在尝试什么:
function match(regexp, string) {
var parse = /\/(.*)\/(.*)/.exec(regexp);
var reg = new RegExp('^' + parse[1] + '$', parse[2]);
return string.match(reg);
}
这段代码正确吗?有更好的方法吗?
【问题讨论】:
-
您应该提供示例输入并显示您想要的输出与实际输出的对比
-
@alfasin 有什么不清楚的地方吗?也许“例如,我想要
match(/abc/, 'abc')返回真值和match(/abc/, 'abc1')返回假值”就像链接帖子中所说的那样?是的,给定的代码确实适用于这个特定的测试用例,但我不确定是否有任何其他情况可能会破坏此代码。 -
不,不清楚。我还是不明白你在问什么……
-
@alfasin 现在好点了吗?我不知道如何使它更清楚......
标签: javascript regex string match