最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中模糊查詢功能的一些常用方法

 更新時間:2024年06月20日 09:31:52   作者:刻刻帝的海角  
在前端開發(fā)中,模糊查詢與下拉匹配是提高用戶體驗的重要功能,特別是在搜索功能上,這篇文章主要給大家介紹了關(guān)于JS中模糊查詢功能的一些常用方法,需要的朋友可以參考下

什么是模糊查詢

模糊查詢是指可以在不明確指定查詢條件的情況下,自動查找與指定字符串相似的內(nèi)容。例如,我們在搜索引擎中輸入關(guān)鍵字時,就會出現(xiàn)相關(guān)的搜索結(jié)果,這就是利用了模糊查詢功能。

在JS中,我們可以利用一些方法來實現(xiàn)對字符串的模糊查詢。

JS字符串方法

在JS中,有一些字符串方法可以幫助我們實現(xiàn)模糊查詢功能,下面來介紹一下幾個常用的方法。

indexOf() 方法

indexOf() 方法用于定位一個字符串在另一個字符串中的位置,如果找到了,則返回該字符串的起始位置;否則,返回 -1。我們可以通過判斷indexOf()方法的返回值是否大于等于0來判斷是否找到了目標(biāo)字符串。

let str = 'hello world';
let target = 'lo';

if (str.indexOf(target) >= 0) {
  console.log('找到了目標(biāo)字符串');
} else {
  console.log('未找到目標(biāo)字符串');
}

match() 方法

match() 方法用于在字符串中查找與指定正則表達式相匹配的子串,并返回一個數(shù)組。我們可以通過判斷該數(shù)組的長度來判斷是否找到了目標(biāo)字符串。

let str = 'hello world';
let target = /lo/;

let result = str.match(target);

if (result && result.length > 0) {
  console.log('找到了目標(biāo)字符串');
} else {
  console.log('未找到目標(biāo)字符串');
}

search() 方法

search() 方法用于在字符串中查找與指定正則表達式相匹配的子串,并返回第一個匹配項的索引。類似于indexOf()方法,如果找到了,則返回該字符串的起始位置;否則,返回 -1。

示例說明

下面通過兩個示例來說明如何使用JS實現(xiàn)模糊查詢功能。

示例一:搜索關(guān)鍵字

在一個文本框中輸入關(guān)鍵字,點擊搜索按鈕后,程序?qū)⑺阉髌ヅ涞慕Y(jié)果并顯示在結(jié)果列表中。

 HTML部分:

<div class="search-box">
  <input type="text" id="search-input">
  <button id="search-btn">搜索</button>
</div>

<div class="search-result">
  <ul id="result-list"></ul>
</div>

 JS部分:

// 獲取頁面中的input框
			let input = document.getElementById('search-input');
			// 獲取頁面中的按鈕
			let button = document.getElementById('search-btn');
			// 獲取頁面中的ul
			let list = document.getElementById('result-list');
			// 給input框綁定oninput監(jiān)聽事件
			input.addEventListener('input', function() {
				// 設(shè)置一個變量為input輸入框中的值
				let keyword = input.value;
				// 創(chuàng)建一個有數(shù)據(jù)的數(shù)組
				let data = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
				// 創(chuàng)建一個空數(shù)據(jù),用來存放篩選后的結(jié)果
				let result = [];
				// 遍歷data
				data.forEach(function(item) {
					// 檢查每一個keyword的值是否大于等于 0
					if (item.indexOf(keyword) >= 0) {
						// 如果keyword的值大于等于0,就把這個元素添加到result的數(shù)組中
						result.push(item);
					}
				});
				// 調(diào)用渲染result的函數(shù)
				renderResult(result);
			});
			// 渲染result
			function renderResult(data) {
				// 聲明一個空字符串
				let html = '';
				// 遍歷data
				data.forEach(function(item) {
					// 空字符串+=li該元素
					html += '<li>' + item + '</li>';
				});
				// ul中的內(nèi)容等于這個字符串
				list.innerHTML = html;
			}

示例二:實時過濾列表

在一個文本框中輸入關(guān)鍵字,程序?qū)崟r過濾列表中與關(guān)鍵字匹配的項,其他項隱身。

HTML部分:

<div class="list-box">
  <input type="text" id="filter-input">
  <ul id="list">
    <li>apple</li>
    <li>banana</li>
    <li>orange</li>
    <li>grape</li>
    <li>watermelon</li>
  </ul>
</div>

 JS部分:

// 獲取頁面中的input
			let input = document.getElementById('filter-input');
			// 獲取頁面中的ul
			let list = document.getElementById('list');
			// 給input添加input事件監(jiān)聽
			input.addEventListener('input', function() {
				// 轉(zhuǎn)換input大寫為小寫,并將其賦予給變量
				let keyword = input.value.toLowerCase();
				// 獲取list下的所有l(wèi)i標(biāo)簽
				let items = list.getElementsByTagName('li');
				//將items轉(zhuǎn)化為真正的數(shù)組并遍歷 
				Array.prototype.forEach.call(items, function(item) {
					// 轉(zhuǎn)換item中文本的大小寫
					let text = item.innerText.toLowerCase();
					// 如果text中keyword大于等于0
					if (text.indexOf(keyword) >= 0) {
						// 顯示item
						item.style.display = 'block';
					} else {
						// 否則隱藏item
						item.style.display = 'none';
					}
				});
			});

以上就是關(guān)于JS中的模糊查詢功能的攻略。 

總結(jié)

到此這篇關(guān)于JS中模糊查詢功能的一些常用方法的文章就介紹到這了,更多相關(guān)JS模糊查詢功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js中Map和Set的用法及區(qū)別實例詳解

    js中Map和Set的用法及區(qū)別實例詳解

    map和set一樣是關(guān)聯(lián)式容器,它們的底層容器都是紅黑樹,區(qū)別就在于map的值不作為鍵,鍵和值是分開的,下面這篇文章主要給大家介紹了關(guān)于js中Map和Set的用法及區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • js 動態(tài)文字滾動的例子

    js 動態(tài)文字滾動的例子

    在文本框中動態(tài)滾動文字的例子,需要的朋友可以參考下。
    2011-01-01
  • javascript實現(xiàn)不同顏色Tab標(biāo)簽切換效果

    javascript實現(xiàn)不同顏色Tab標(biāo)簽切換效果

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)不同顏色Tab標(biāo)簽切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • JS獲取表格內(nèi)指定單元格html內(nèi)容的方法

    JS獲取表格內(nèi)指定單元格html內(nèi)容的方法

    這篇文章主要介紹了JS獲取表格內(nèi)指定單元格html內(nèi)容的方法,涉及javascript中innerHTML屬性的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 微信小程序修改checkbox的樣式代碼實例

    微信小程序修改checkbox的樣式代碼實例

    這篇文章主要介紹了微信小程序修改checkbox的樣式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • 如何用CocosCreator制作微信小游戲

    如何用CocosCreator制作微信小游戲

    這篇文章主要介紹了如何用CocosCreator制作微信小游戲,從下載工具到配置,最后連接微信小游戲預(yù)覽,一步步很詳細,希望讀者們仔細看一下
    2021-04-04
  • JS動態(tài)添加元素及綁定事件造成程序重復(fù)執(zhí)行解決

    JS動態(tài)添加元素及綁定事件造成程序重復(fù)執(zhí)行解決

    這篇文章主要給大家介紹了關(guān)于JS動態(tài)添加元素及綁定事件造成程序重復(fù)執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • JavaScript實現(xiàn)的簡單拖拽效果

    JavaScript實現(xiàn)的簡單拖拽效果

    這篇文章主要介紹了JavaScript實現(xiàn)的簡單拖拽效果,涉及javascript針對鼠標(biāo)事件與頁面樣式的操作技巧,需要的朋友可以參考下
    2015-06-06
  • Webpack的Loader和Plugin的區(qū)別

    Webpack的Loader和Plugin的區(qū)別

    這篇文章主要介紹了Webpack的Loader和Plugin的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 很棒的Bootstrap選項卡切換效果

    很棒的Bootstrap選項卡切換效果

    這篇文章主要為大家分享了一款很棒的Bootstrap選項卡切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論

晋中市| 泰来县| 四会市| 鹤庆县| 鄂尔多斯市| 江山市| 新兴县| 芮城县| 定州市| 洪江市| 佛教| 瓮安县| 北宁市| 肃宁县| 兴海县| 新绛县| 遵义县| 阳西县| 天台县| 苗栗市| 邯郸县| 额济纳旗| 清徐县| 绵竹市| 商都县| 马关县| 甘泉县| 武定县| 梓潼县| 武清区| 儋州市| 阳高县| 上饶市| 亚东县| 麻城市| 肇州县| 波密县| 娄烦县| 乐陵市| 高州市| 油尖旺区|