var string;
string = 'test';
console.log((/(test)+/g).test(string));//i want true
string = 'another test';
console.log((/(test)+/g).test(string));//i want false
string = 'test test';
console.log((/((\w)+(\w){3,}).*?\1/g).test(string));//this work, but i want chose the words
string = 'test test';
console.log((/((test)+(\w)+).*?\1/g).test(string));//this don't work, i can't chose 'test'

如果有一个不可预知的单词,我想总是返回false。 我有一串单词,如果我在字符串中找到一个不可预知的单词,我想要一个假的,所以我总是看到真的,因为只有控制是否找到了这个单词。 对不起英语,谷歌翻译。
答案 0 :(得分:1)
从我能提出的问题来看,只有当完整的字符串由你想要的单词组成时,你才需要返回true
。
此正则表达式/^( ?test ?)+$/
应该适合您。
这将强制字符串以单词test开头和结尾,并允许单词之间有空格。
答案 1 :(得分:1)
所以,如果在一个字符串中有一个给定字符串的多次出现,那么你想要匹配,对吗?您可以使用RegExp对象生成动态正则表达式模式:
var search = 'test';
var reg = new RegExp('('+search+').*?\\1','g');
console.log(reg.test('test')); // false
console.log(reg.test('test test')); // true
console.log(reg.test('another test')); // false
console.log(reg.test('test another test')); //true