JSFiddle - React, Tailwind, and code Playground

by Andre Figueiredo

HTML

<table>
    <thead>
        <tr>
            <th>Case</th>
            <th>Expected</th>
            <th>contains (RegEx)</th>
            <th>contains (split)</th>
            <th>contains (split Compatib)</th>
            <th>indexOf</th>
            <th>accepted</th>
        </tr>
    </thead>
    <tbody>
		<tr><td>hello1234hello</td><td>false</td></tr>
		<tr><td>hello 1234hello</td><td>false</td></tr>
		<tr><td>hello01234 hello</td><td>false</td></tr>
		<tr><td>hello 1234 hello</td><td>true</td></tr>
		<tr><td>1234hello</td><td>false</td></tr>
		<tr><td>hello1234</td><td>false</td></tr>
		<tr><td>1234 hello</td><td>true</td></tr>
		<tr><td>hello 1234</td><td>true</td></tr>
		<tr><td>  </td><td>false</td></tr>
        <tr><td>hello	1234</td><td>true</td></tr>
		<tr><td>1234 </td><td>true</td></tr>
        <tr><td> 1234 </td><td>true</td></tr>
    </tbody>
</table>

CSS

table {
    border-collapse: collapse;
    font-family: arial;
}
th, td {
    border: 1px solid #ccc;
    padding: 2px 10px;
    text-align: left;
}
.false { color: #f00; }
.true { color: #00f; }

JavaScript

$(document).ready(function(){
    $('tbody').children().each(function(i, element){
        var tr = $(this);
        var tds = tr.children();
        var testCase = tds.eq(0).text();
        
        var newTRs = '';
        newTRs += "<td>" + containsRegEx(testCase, '1234') + "</td>";
        newTRs += "<td>" + containsSplit(testCase, '1234') + "</td>";
        newTRs += "<td>" + containsSplitCompatib(testCase, '1234') + "</td>";
        newTRs += "<td>" + indexOf(tds[0], '1234') + "</td>";
        newTRs += "<td>" + accepted(testCase, '1234') + "</td>";
        
        tr.append(newTRs);
    });
    
    var tds = $('td');
    tds.filter(':contains("false")').addClass('false');
    tds.filter(':contains("true")').addClass('true');
    
});

// 
function containsRegEx(value, searchString){
    return (new RegExp("\\b" + searchString + "\\b")).test(value);
}

function containsSplit(value, searchString){
    return value.split(/\s+/g).indexOf(searchString) > -1;
}

function containsSplitCompatib(value, searchString){
    var splitted = value.split(/\s+/g);
    for (var i = 0; i < splitted.length; i++){
        if (splitted[i] === searchString){
            return true;
        }
    }
    return false;
}

function indexOf(element, searchString){
    console.log('" ' + element.textContent + ' " == " ' + searchString + ' " : ' + ((' ' + element.textContent + ' ').indexOf(' ' + searchString + ' ') != -1).toString());
    return (' ' + element.textContent + ' ').indexOf(' ' + searchString + ' ') != -1;
}

function accepted(value, searchString){
     return value.indexOf(searchString) != 1;
}