正则表达式:键入的单词匹配开始还是整个单词?

时间:2019-02-13 09:36:42

标签: javascript jquery regex forms

我实际上正在使用一个系统,该系统会在用户填写表单输入时向用户提出建议,这是他在上一次访问网站时在此表单字段中键入的单词(类似于Google的自动完成表单实际上)。

我的表单很基本:名字的输入和姓的输入。

由于正则表达式,我想知道是否有一种方法可以检查输入的单词是否与我先前存储在LocalStorage中的单词匹配。

示例

我存储在localStorage中的单词是'Matthew'。

将匹配的键入单词是:“ M”,“ Ma”,“ Mat”,“ Matt”,“ Matth”,“ Matthe”和“ Matthew”。

在此先感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

当我需要检查正则表达式时,我使用以下服务:https://regex101.com/

但是对于您的任务,我认为您只需要一个indexOf()函数:

var userName = 'Matthew';
    
    var searchTerm = 'Ma';
    var indexOfFirst = userName.indexOf(searchTerm);
    
    console.log('The index of the first "' + searchTerm + '" from the beginning is ' + indexOfFirst);

更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

答案 1 :(得分:0)

在较新的浏览器中,有一个string.startsWith(...)函数可以告诉您字符串是否以输入开头

引用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith

如果您需要旧版浏览器的支持,则可以使用上一页中的pollyfill:

if (!String.prototype.startsWith) {
    Object.defineProperty(String.prototype, 'startsWith', {
        value: function(search, pos) {
            pos = !pos || pos < 0 ? 0 : +pos;
            return this.substring(pos, pos + search.length) === search;
        }
    });
}