如果字符串中包含的JavaScript

问题描述:

我想弄清楚的正则表达式为如果字符串包含空格不匹配的字符串一个空格不匹配。例如如果字符串中包含的JavaScript

“的”不应与“的”

“豪斯医生”不应与“豪斯医生”

+2

什么是您的具体目标是什么?你试试? 这可能会帮助你:https://regex101.com/r/CpR8xb/1 – Wikunia

+0

那么为什么要使用正则表达式呢? '如果(A == B){}' – epascarello

+0

@wikunia我的目标是寻找在我的搜索引擎特定的书籍,因此,例如,如果我输入“家”就应该自动提示类似“室友”,但如果我键入“房子“(与房子后面的空间),它应该自动建议像”房子卡“ –

您可以检查搜索字符串是否是内部的任何的清单中的书籍。

var matches = function(search, books) { 
    return books.filter(function(book) { 
    return book.indexOf(search) !== -1 
    }) 
} 

我不认为你需要在这种情况下的正则表达式。

请参阅“房子”是不是里面的房子“,但

+1

我会建议不要使用正则表达式,除非用户知道如何使用它们。例如,搜索“mr.hide”的用户会匹配“mrahide”,搜索“a * book”会匹配“aaa book”和“这是真的吗?”会匹配“是这个原因”。如果这对你没有意义,想象你可怜的用户...... – Aaron

+0

是的,这个正则表达式的例子很糟糕。我已经删除它 – Eoin

您可以使用startsWith(),使其适合您的要求,使用填充工具对老年人/不支持的浏览器内“的房子”。

var strings = ["HouseArrest", "House arrest", "HouseOfCards", "House of cards"]; 
 

 
function search(val){ 
 
    var res = strings.filter(i=>i.startsWith(val)); 
 
    console.clear(); 
 
    console.log(JSON.stringify(res)); 
 
    }
<input onkeyup="search(this.value)" type="text"/>