我正在尝试根据用户输入编写一个正则表达式,用于搜索字符串中每个单词的开头和后面的单词(不包括空格)。这是我正在使用的当前代码。
var ndl = 'needlehay', //user input
re = new RegExp('(?:^|\\s)' + ndl, 'gi'), //searches start of every word
haystack = 'needle haystack needle second instance';
re.test(haystack); //the regex i need should find 'needle haystack'
我很乐意欣赏任何帮助或建议。
谢谢!
答案 0 :(得分:0)
我会迭代针,并手动尝试每个变化
function check(needle, haystack) {
if (haystack.replace(/\s/g, '').indexOf(needle) === 0) return true;
return needle.split('').some(function(char, i, arr) {
var m = (i===0 ? '' : ' ') + needle.slice(0,i) +' '+ needle.slice(i);
return haystack.indexOf(m) != -1;
});
}