首页 > 解决方案 > 如何验证数组中的每个元素是否包含打字稿/量角器中的搜索字符串

问题描述


我如何验证数组的每个元素是否包含打字稿/量角器中的搜索字符串?所有控制台语句都返回 false,因为它们正在寻找完整的文本而不是搜索字符串。请提出解决方案。

arr = [ 'Citibank, N.A.', 'Citi China Companies', 'Citibank Ireland' ] 
search string = 'citi'

Then('I enter search text where the highlighted search results will include a Client Company Name {string}, {string}', async (searchText, companyName) => {
    await acctmgrclientselection.deleteSearchText().then(async () => {
        await acctmgrclientselection.getSelectClientSearchInputEl().sendKeys(searchText).then(async () => {
            await acctmgrclientselection.getSelectClientSearchInputEl().sendKeys(protractor.Key.ENTER).then(async () => {
            await dashboardFilter.getEmployeeListGrid().count().then( async ( CountVal ) => {
                if(CountVal >1)
                {
                var strArr: Array<string> = [];
                await acctmgrclientselection.getClientTblCompanyName().getText().then(async (text) => {
                    await strArr.push(text)
                    //strArr.forEach(function(value){
                var sortable = [];
                strArr.forEach(value => {
                sortable.push([value]);
                let sorted_array: Array<string> = sortable.map(arr => arr[0])
                let result = sorted_array.every(element => element.includes(searchText))
                console.log(result)    
                });
                });
                }
                else 
                {
           //clear criteria
            console.log('clear criteria');
                    await element(by.cssContainingText('mat-card.empty-results.mat-card p','0 results matching your criteria')).isDisplayed().then(async()=>{
                        await element(by.cssContainingText('mat-card.empty-results.mat-card a','Clear Criteria')).isDisplayed();
                    });
                }
            });
        });
    });
});
});

标签: arraystypescriptsearchsubstring

解决方案


您需要使用搜索字符串检查正则表达式。

const pattern = new RegExp("Citi");
const result = sorted_array.every(element => pattern.test(element));
console.log(result);

推荐阅读