<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Free Online Text Tools - Imediacto</title>
	<atom:link href="https://imediacto.com/category/tools/text-tools/feed/" rel="self" type="application/rss+xml" />
	<link>https://imediacto.com/category/tools/text-tools/</link>
	<description>Free Online Tool Set for Text and HTML</description>
	<lastBuildDate>Tue, 04 Nov 2025 22:10:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://imediacto.com/wp-content/uploads/2020/04/cropped-favicon-32x32.png</url>
	<title>Free Online Text Tools - Imediacto</title>
	<link>https://imediacto.com/category/tools/text-tools/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Find and Replace Text Online</title>
		<link>https://imediacto.com/tools/text-tools/find-and-replace-text-online/</link>
					<comments>https://imediacto.com/tools/text-tools/find-and-replace-text-online/#respond</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Sun, 11 Sep 2022 02:08:30 +0000</pubDate>
				<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=334</guid>

					<description><![CDATA[<p>Use the Online Text Replacer Tool to find and replace text saving your time when you need to change some words in a large document.</p>
<p>The post <a href="https://imediacto.com/tools/text-tools/find-and-replace-text-online/">Find and Replace Text Online</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot">
        <p>This is an <strong>online text replacer tool</strong> that allows you to find and replace text saving your time when you need to change some words in a large document.</p>
        
        <div class="row">
            <div class="col-sm-12 mb-3">
                <strong class="title">Input</strong>
                <textarea id="input" name="input" cols="30" rows="10" placeholder="Insert text to replace"></textarea>
            </div>
        </div>

        <div class="row">
            <div class="col-md-6 col-12 col-sm-12">
                <strong class="title">Search for</strong>
                <div class="form-group">
                    <input id="search" class="form-control mb-2 mr-sm-2" type="text" value=""
                        placeholder="Text to search for">
                </div>
            </div>
            <div class="col-md-6 col-12 col-sm-12">
                <strong class="title">Replace with</strong>
                <div class="form-group">
                    <input id="replace" class="form-control mb-2 mr-sm-2" type="text" value=""
                        placeholder="Text to replace with">
                </div>
            </div>
        </div>

        <div class="row">
            <div class="col-md-6 col-12 col-sm-12 mb-3">
                <strong class="title">Options</strong>
                <div class="custom-control custom-checkbox">
                    <input type="checkbox" id="case-sensitive" class="custom-control-input">
                    <label class="custom-control-label" for="case-sensitive">Math case-sensitive</label>
                </div>
                <div class="custom-control custom-checkbox">
                    <input type="checkbox" id="match-exact-word" class="custom-control-input" checked>
                    <label class="custom-control-label" for="match-exact-word">Math exact word / term</label>
                </div>
                <div class="custom-control custom-checkbox">
                    <input type="checkbox" id="first-occurrence" class="custom-control-input">
                    <label class="custom-control-label" for="first-occurrence">Find only first occurrence</label>
                </div>
            </div>
        </div>

        <div class="row">
            <div class="col-sm-12 mb-3">
                <button class="btn btn-success" onclick="findAndReplace();"
                    aria-label="Button to find and replace text">
                    <i class="fa fa-chevron-right"></i> Find and replace
                </button>
            </div>
            <div class="col-sm-12">
                <strong class="title">Output</strong>
                <div id="output"></div>
                <div class="flex" style="justify-content: space-between;">
                    <div class="flex mt-2">
                        <div class="div-btn mr-1" onclick="saveToFile()" title="Download as TXT"
                            aria-label="Button to download the output JSON"> <i class="fa fa-download">
                                <span>TXT</span></i>
                        </div>
                        <div class="flex">
                            <div class="div-btn" onclick="copyToClipboard()" title="Copy output to clipboard"
                                area-label="Button to copy the JSON to clipboard"> <i class="fa fa-copy"> <span
                                        class="hide-on-xs">Copy to clipboard</span></i></div>
                            <div id="check" class="none"
                                style="width: 18px; height: 18px; background-size: contain; margin-left: 8px; margin-bottom: 4px;">
                            </div>
                        </div>
                    </div>
                    <div id="num-occurrences" class="mt-2 float-right"></div>
                </div>
            </div>
        </div>

        <hr>

        <h2>How does the Find and Replace Text work?</h2>
        <p>To use this tool you need:</p>
        <ol>
            <li>In the <strong>Input</strong> textarea, type or paste a block of text you want to replace.</li>
            <li>In the <strong>Search for</strong> input, put the term you want to search for.</li>
            <li>In the <strong>Replace with</strong> input, put the term you want to replace for.</li>
            <li>Choose options to improve your search.</li>
            <li>Click the <strong>Find and replace</strong> button. Actually the process will be applyed automatically.</li>
            <li>Finally, you can see the resulting text in the <strong>Output</strong> textarea.</li>
        </ol>

        <div class="notes">
            <div class="image"></div>
            <div class="message">
                <p>
                    You can view the source code of this online tool or contribute to improving it
                    by programming some new feature or fixing bugs. For that, go to Github at <a
                        href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/009-find-and-replace-text-online"
                        target="_blank">Github >> Find and Replace Text Online</a> and make a pull request. This will be
                    great!
                </p>
            </div>
    </div>
</div>

    <script>
        function findAndReplace() {

            const search = document.getElementById('search').value
            const replace = document.getElementById('replace').value

            if (search == '' || replace == '') {
                document.getElementById('output').innerHTML = ''
                return
            }

            const text = document.getElementById('input').value
            const isCaseSensitive = document.getElementById('case-sensitive').checked ? true : false
            const isMatchExactlyWord = document.getElementById('match-exact-word').checked ? true : false
            const isToFindFirstOccurrence = document.getElementById('first-occurrence').checked ? true : false

            const regex = new RegExp((isMatchExactlyWord ? '\\b' : '') + search + (isMatchExactlyWord ? '\\b' : ''), (isToFindFirstOccurrence ? '' : 'g') + (isCaseSensitive ? '' : 'i'))

            document.getElementById('output').innerHTML = text
                .replace(regex, '<mark>' + replace + '</mark>')
                .replace(/\n/g, '<br />')
            // console.log(text.match(regex))
            document.getElementById('num-occurrences').innerHTML = (text.match(regex) ? text.match(regex).length : '0') + (text.match(regex) && text.match(regex).length == 1 ? ' occurrence' : ' occurrences')
        }

        function saveToFile() {
            download('text-replaced.txt', document.getElementById('output').innerText)
        }

        document.getElementById('search').addEventListener('keyup', findAndReplace)
        document.getElementById('replace').addEventListener('keyup', findAndReplace)
        document.getElementById('case-sensitive').addEventListener('click', findAndReplace)
        document.getElementById('match-exact-word').addEventListener('click', findAndReplace)
        document.getElementById('first-occurrence').addEventListener('click', findAndReplace)
    </script></p>
<p>The post <a href="https://imediacto.com/tools/text-tools/find-and-replace-text-online/">Find and Replace Text Online</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/text-tools/find-and-replace-text-online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Compare Two Lists ~ Free List Comparison Tool</title>
		<link>https://imediacto.com/tools/list-tools/compare-two-lists/</link>
					<comments>https://imediacto.com/tools/list-tools/compare-two-lists/#comments</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Tue, 09 Feb 2021 15:13:34 +0000</pubDate>
				<category><![CDATA[List Tools]]></category>
		<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[List comparison tool]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=266</guid>

					<description><![CDATA[<p>This list comparison tool allows you to compare two lists to be able you analyze SET operations (difference, intersection, union, symmetric difference).</p>
<p>The post <a href="https://imediacto.com/tools/list-tools/compare-two-lists/">Compare Two Lists ~ Free List Comparison Tool</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot">
        <p>This <strong>list comparison tool</strong> allows you to <strong>compare two lists</strong> (arrays) to be able you analyze the <strong>difference between the two lists</strong>.
            The program receives lists of the type string or number and after starting the comparison it is possible to sort the results.</p>

        <!-- Results -->
        <div class="row">
            <div class="col-12 mt-2 mb-2">
                <h2>Inputs</h2>
            </div>
        </div>

        <div class="row">
            <div class="col-md-6 col-12 col-sm-12 mb-3">
                <p class="strong font-topic">Input data structure</p>
                <div class="custom-control custom-radio">
                    <input type="radio" id="sep1" name="items-separation" value="lines" class="custom-control-input"
                        checked>
                    <label class="custom-control-label" for="sep1">From lines</label>
                </div>
                <div class="custom-control custom-radio">
                    <input type="radio" id="sep2" name="items-separation" value="commas" class="custom-control-input">
                    <label class="custom-control-label" for="sep2">Separeted by commas</label>
                </div>
                <div class="custom-control custom-radio">
                    <input type="radio" id="sep3" name="items-separation" value="spaces" class="custom-control-input">
                    <label class="custom-control-label" for="sep3">Separeted by space</label>
                </div>
            </div>
            <div class="col-md-6 col-12 col-sm-12 mb-3">
                <p class="strong font-topic">Input data type</p>
                <div class="custom-control custom-radio">
                    <input type="radio" id="string" name="data-type" value="string" class="custom-control-input"
                        checked>
                    <label class="custom-control-label" for="string">String</label>
                </div>
                <div class="custom-control custom-radio">
                    <input type="radio" id="number" name="data-type" value="number" class="custom-control-input">
                    <label class="custom-control-label" for="number">Number</label>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-12 mb-3 hide-on-xs">
                <div class="div-btn mr-1 mr-2" title="Switch view">
                    <i class="fa fa-list" onclick="toggleLines()"> <span>Toggle layout view</span></i>
                </div>
            </div>
            <div class="col-sm-6 mb-3">
                <p class="strong font-topic">List A</p>
                <textarea id="input-a" name="input-a" cols="30" rows="10" placeholder="Insert items for list A"></textarea>
            </div>
            <div class="col-sm-6 mb-3">

                <p class="strong font-topic">List B</p>
                <textarea id="input-b" name="input-a" cols="30" rows="10" placeholder="Insert items for list B"></textarea>
            </div>
        </div>
        <div class="row">
            <div class="col-md-6 col-sm-12 mb-3">
                <p class="strong font-topic">Handle data as</p>
                <div class="custom-control custom-radio">
                    <input type="radio" id="set" name="set-or-list" value="set" class="custom-control-input" checked>
                    <label class="custom-control-label" for="set">As a set (no repeated elements)</label>
                </div>
                <div class="custom-control custom-radio">
                    <input type="radio" id="list" name="set-or-list" value="list" class="custom-control-input">
                    <label class="custom-control-label" for="list">As a list (with repeated elements)</label>
                </div>
            </div>
            <div class="col-md-6 col-sm-12 mb-3">
                <p class="strong font-topic">Output data separetad by</p>
                <div class="custom-control custom-radio">
                    <input type="radio" id="output1" name="items-separation-output" value="lines"
                        class="custom-control-input" checked>
                    <label class="custom-control-label" for="output1">By lines</label>
                </div>
                <div class="custom-control custom-radio">
                    <input type="radio" id="output2" name="items-separation-output" value="commas"
                        class="custom-control-input">
                    <label class="custom-control-label" for="output2">By commas</label>
                </div>
                <div class="custom-control custom-radio">
                    <input type="radio" id="output-" name="items-separation-output" value="spaces"
                        class="custom-control-input">
                    <label class="custom-control-label" for="output-">By space</label>
                </div>
            </div>
        </div>
        <div class="row mb-3">
            <div class="col-sm-12">
                <div class="flex space-between mt-2">
                    <button onclick="applyDiffImproved()" class="btn btn-success mr-2">
                        <i class="fa fa-chevron-right"></i> Compare lists
                    </button>
                    <div class="flex">
                        <!-- TODO :: aplicar button.soft em todos os divs que fazem o papel de botão -->
                        <button class="soft mr-1" onclick="sortAllItems(false)" title="Sort all items asc" aria-label="Sort all items desc">
                            <i class="fa fa-sort-amount-asc"> <span class="hide-on-xs">Sort all asc</span></i>
                        </button>
                        <button class="soft mr-1" onclick="sortAllItems(true)" title="Sort all items asc" aria-label="Sort all items asc">
                            <i class="fa fa-sort-amount-desc"> <span class="hide-on-xs">Sort all desc</span></i>
                        </button>
                    </div>
                </div>
            </div>
        </div>

        <!-- Results -->
        <div class="row">
            <div class="col-12">
                <h2>Results</h2>
            </div>
        </div>
        
        <div class="row">
            
            <!-- Only in A -->
            <div class="col-sm-6 mt-3">
                <div class="flex mb-2">
                    <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-a-minus-b.png" class="img-set" alt="Set: A minus B">
                    <p class="strong font-topic" title="A minus B">Only in list A</p>
                </div>
                <pre title="A minus B"><span id="adiffb"><span class="help-text">A diff B</span></span></pre>
                <div class="flex">
                    <button class="soft mr-1" onclick="sortItems('adiffb')" title="Sort items asc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-asc"></i>
                    </button>
                    <button class="soft mr-1" onclick="sortItems('adiffb', true)" title="Sort items desc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-desc"></i>
                    </button>
                    <button class="soft mr-1" onclick="copyToClipboard('adiffb', 'check1')" title="Copy output to clipboard" aria-label="Copy the output A minus B to clipboard">
                        <i class="fa fa-copy"></i>&nbsp;
                    </button>
                    <div id="check1" class="check none"></div>
                </div>
            </div>
            
            <!-- Only in B -->
            <div class="col-sm-6 mt-3">
                <div class="flex mb-2">
                    <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-b-minus-a.png" class="img-set" alt="Set: B minus A">
                    <p class="strong font-topic" title="B minus A">Only in list B</p>
                </div>
                <pre title="B minus A"><span id="bdiffa"><span class="help-text">B diff A</span></span></pre>
                <div class="flex">
                    <button class="soft mr-1" onclick="sortItems('bdiffa')" title="Sort items asc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-asc"></i>
                    </button>
                    <button class="soft mr-1" onclick="sortItems('bdiffa', true)" title="Sort items desc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-desc"></i>
                    </button>
                    <button class="soft mr-1" onclick="copyToClipboard('bdiffa', 'check2')" title="Copy output to clipboard" aria-label="Copy the output B minus A to clipboard">
                        <i class="fa fa-copy"></i>&nbsp;
                    </button>
                    <div id="check2" class="check none"></div>
                </div>
            </div>
            
            <!-- A intersection B -->
            <div class="col-sm-6 mt-3">
                <div class="flex mb-2">
                    <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-intersection.png" class="img-set" alt="Set: A intersection B">
                    <p class="strong font-topic" title="A intersection B">Common items (A &cap; B)</p>
                </div>
                <pre title="A intersection B"><span id="ainterb"><span class="help-text">Intersection ​​between A and B</span></span></pre>
                <div class="flex">
                    <button class="soft mr-1" onclick="sortItems('ainterb')" title="Sort items asc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-asc"></i>
                    </button>
                    <button class="soft mr-1" onclick="sortItems('ainterb', true)" title="Sort items desc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-desc"></i>
                    </button>
                    <button class="soft mr-1" onclick="copyToClipboard('ainterb', 'check3')" title="Copy output to clipboard" aria-label="Copy the common items to clipboard">
                        <i class="fa fa-copy"></i>&nbsp;
                    </button>
                    <div id="check3" class="check none"></div>
                </div>
            </div>

            <!-- A union B -->
            <div class="col-sm-6 mt-3">
                <div class="flex mb-2">
                    <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-union.png" class="img-set" alt="Set: A union B">
                    <p class="strong font-topic" title="A union B">All items (A &cup; B)</p>
                </div>
                <pre title="A union B"><span id="aunionb"><span class="help-text">Union of values ​​between A and B</span></span></pre>
                <div class="flex">
                    <button class="soft mr-1" onclick="sortItems('aunionb')" title="Sort items asc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-asc"></i>
                    </button>
                    <button class="soft mr-1" onclick="sortItems('aunionb', true)" title="Sort items desc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-desc"></i>
                    </button>
                    <button class="soft mr-1" onclick="copyToClipboard('aunionb', 'check4')" title="Copy output to clipboard" aria-label="Copy the union output to clipboard">
                        <i class="fa fa-copy"></i>&nbsp;
                    </button>
                    <div id="check4" class="check none"></div>
                </div>
            </div>
            <!-- Symmetric difference -->
            <div class="col-sm-6 mt-3">
                <div class="flex mb-2">
                    <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-symmetric-difference.png" class="img-set" alt="Set: Symmetric diference between A and B">
                    <p class="strong font-topic" title="Symmetric difference">Exclusive items (A &bigtriangleup; B)</p>
                </div>
                <pre title="Symmetric difference"><span id="difference"><span class="help-text">Symmetric difference between A and B</span></span></pre>
                <div class="flex">
                    <button class="soft mr-1" onclick="sortItems('difference')" title="Sort items asc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-asc"></i>
                    </button>
                    <button class="soft mr-1" onclick="sortItems('difference', true)" title="Sort items desc" aria-label="Sort items">
                        <i class="fa fa-sort-amount-desc"></i>
                    </button>
                    <button class="soft mr-1" onclick="copyToClipboard('difference', 'check5')" title="Copy output to clipboard" aria-label="Copy the symetric difference between A and B to clipboard">
                        <i class="fa fa-copy"></i>&nbsp;
                    </button>
                    <div id="check5" class="check none"></div>
                </div>
            </div>
        </div>
        <hr>
        <section class="tips">
        <h2>Tips for Better Results</h2>
            <ul>
                <li>Paste clean text without extra spaces.</li>
                <li>Use “set” mode to ignore duplicates.</li>
                <li>Use “list” mode to include repeated items.</li>
            </ul>
        </section>
        <hr>
        <h2>How does the Compare Two Lists tool work?</h2>
        <p>It will function normally according to the rules of the sets, in Mathematics. However, in this tool, you can also choose the list option, so that it is possible to work with repeated values. The following operations are performed:</p>

        <div class="flex mt-3">
            <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-a-minus-b.png" class="img-set" alt="Set: A minus B"><h3 class="mb-0 mt-0 pb-0">A minus B</h3>
        </div>
        <p>Returns the values ​​that are present only in list A.</p>

        <div class="flex mt-3">
            <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-b-minus-a.png" class="img-set" alt="Set: B minus A"><h3 class="mb-0 mt-0 pb-0">B minus A</h3>
        </div>
        <p>Returns the values ​​that are present only in list B.</p>

        <div class="flex mt-3">
            <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-intersection.png" class="img-set" alt="Set: A intersection B"><h3 class="mb-0 mt-0 pb-0">A intersection B</h3>
        </div>
        <p>They are represented by the values ​​that occur simultaneously in the two lists.</p>

        <div class="flex mt-3">
            <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-union.png" class="img-set" alt="Set: A union B"><h3 class="mb-0 mt-0 pb-0">A union B</h3>
        </div>
        <p>They are represented by all the values ​​present in both lists.</p>

        <div class="flex mt-3">
            <img decoding="async" src="https://imediacto.com/wp-content/uploads/2021/02/set-symmetric-difference.png" class="img-set" alt="Set: Symmetric diference between A and B"><h3 class="mb-0 mt-0 pb-0">Symmetric difference</h3>
        </div>
        <p>The symmetric difference of two sets is the set of elements that are in one of the sets, but not at its intersection.</p>

        <h2>Important note</h2>

        <p>There is no limitation on the maximum number of rows allowed in a list, however, if you put in too large a volume of data, the browser may slow down or even crash for a moment.</p>
        
        <hr>
        <!-- FAQ sem JS -->
        <h2 class="mt-4 mb-3">FAQ about this Comparison List Tool</h2>

        <div class="faq-list">
            <details>
                <summary>Can I compare lists with numbers?</summary>
                <div class="faq-content">
                    Yes. Just switch the “Data Type” option to <strong>Number</strong> before clicking <em>Compare Lists</em>.
                </div>
            </details>

            <details>
                <summary>What is the maximum list size?</summary>
                <div class="faq-content">
                    There is no fixed limit. However, very large lists (thousands of lines) may slow down your browser temporarily.
                </div>
            </details>

            <details>
                <summary>Does this tool store my data?</summary>
                <div class="faq-content">
                    No. All processing happens locally in your browser — your data never leaves your device.
                </div>
            </details>

            <details>
                <summary>Can I find duplicate items between two lists?</summary>
                <div class="faq-content">
                    Yes. Use the <strong>Common items (A ∩ B)</strong> section to see all items that appear in both lists — these are your duplicates.
                </div>
            </details>

            <details>
                <summary>Is the comparison case sensitive?</summary>
                <div class="faq-content">
                    Yes. The comparison is <strong>case sensitive</strong>, meaning “Apple” and “apple” are treated as different items.
                </div>
            </details>

            <details>
                <summary>What is the difference between Union and Symmetric Difference?</summary>
                <div class="faq-content">
                    <strong>Union (A ∪ B)</strong> shows all unique items from both lists combined.  
                    <strong>Symmetric Difference (A △ B)</strong> shows items that appear in either list, but <em>not</em> in both — the unique items from each list.
                </div>
            </details>
        </div>

        <!-- JSON-LD FAQ schema for SEO -->
        <script type="application/ld+json">
        {
        "@context": "https://schema.org",
        "@type": "FAQPage",
        "mainEntity": [
                {
                "@type": "Question",
                "name": "Can I compare lists with numbers?",
                "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. Just switch the Data Type option to Number before clicking Compare Lists."
                }
                },
                {
                "@type": "Question",
                "name": "What is the maximum list size?",
                "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "There is no fixed limit. However, very large lists may slow down your browser temporarily."
                }
                },
                {
                "@type": "Question",
                "name": "Does this tool store my data?",
                "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "No. All processing happens locally in your browser — your data never leaves your device."
                }
                },
                {
                "@type": "Question",
                "name": "Can I find duplicate items between two lists?",
                "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. Use the In Both Lists (A ∩ B) section to see all items that appear in both lists — these are your duplicates."
                }
                },
                {
                "@type": "Question",
                "name": "Is the comparison case sensitive?",
                "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Yes. The comparison is case sensitive, meaning 'Apple' and 'apple' are considered different items."
                }
                },
                {
                "@type": "Question",
                "name": "What is the difference between Union and Symmetric Difference?",
                "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Union (A ∪ B) shows all unique items from both lists combined, while Symmetric Difference (A △ B) shows items that appear in either list but not in both."
                }
                }
            ]
        }
        </script>
        
        <div class="notes">
            <div class="image"></div>
            <div class="message">
                <p>
                    List comparison is a recurring task among professional programmers and students.
                    If you want some new feature for this <strong>Compare Two Lists</strong> tool, let me know in the comments area.
                    Also, tell me if you found some bug, that I can fix it as soon as possible.
                </p>
                <p>
                    You can learn about how this online list tool works or contribute improving the it
                    by programming some new feature or fixing bugs. For that, go to Github on <a
                        href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/008-compare-two-lists"
                        target="_blank">Github >> Compare Two Lists</a> and make a pull request. This will be great!
                </p>
            </div>
        </div>
    </div>

    <script>
        let separatorOutput = '\n';

        // Improved
        function applyDiffImproved() {

            const itemsSeparationsInput = document.querySelector('input[name="items-separation"]:checked').value
            const setOrList = document.querySelector('input[name="set-or-list"]:checked').value
            const itemsSeparationsOutput = document.querySelector('input[name="items-separation-output"]:checked').value

            // Input sepearator
            let separatorInput = '\n';
            if (itemsSeparationsInput == 'lines') {
                separatorInput = '\n';
            } else if (itemsSeparationsInput == 'commas') {
                separatorInput = ',';
            } else if (itemsSeparationsInput == 'spaces') {
                separatorInput = ' ';
            }

            // Output sepearator
            if (itemsSeparationsOutput == 'lines') {
                separatorOutput = '\n';
            } else if (itemsSeparationsOutput == 'commas') {
                separatorOutput = ', ';
            } else if (itemsSeparationsOutput == 'spaces') {
                separatorOutput = ' ';
            }

            // Set or list
            const isSet = setOrList === 'set' ? true : false

            // Get items on input textareas
            let inputA = document.getElementById('input-a').value.split(separatorInput)
            let inputB = document.getElementById('input-b').value.split(separatorInput)

            if (separatorInput == '\n') {
                inputA = inputA.filter(item => item != '')
                inputB = inputB.filter(item => item != '')
            }

            if (separatorInput == '\n' || separatorInput == ',') {
                inputA = inputA.map(item => item.trim())
                inputB = inputB.map(item => item.trim())
            } else {
                // Remove empty elements
                inputA = inputA.filter(item => item != '')
                inputB = inputB.filter(item => item != '')
            }

            aDiffB = []
            bDiffA = []
            aInterB = []

            // Passing through arrayA :: get A diff B and A inter B
            for (item in inputA) {
                if (!inputB.includes(inputA[item])) {
                    aDiffB.push(inputA[item])
                } else {
                    aInterB.push(inputA[item])
                }
            }

            // Passing through arrayB :: get B diff A
            bDiffA = inputB.filter(item => !inputA.includes(item))

            // Writing results
            if (isSet) {
                document.getElementById('adiffb').innerHTML = [...new Set(aDiffB)].join(separatorOutput)
                document.getElementById('bdiffa').innerHTML = [...new Set(bDiffA)].join(separatorOutput)
                document.getElementById('ainterb').innerHTML = [...new Set(aInterB)].join(separatorOutput)
                document.getElementById('aunionb').innerHTML = [...new Set(inputA.concat(inputB))].join(separatorOutput)
                document.getElementById('difference').innerHTML = [...new Set(aDiffB.concat(bDiffA))].join(separatorOutput)
            } else {
                document.getElementById('adiffb').innerHTML = aDiffB.join(separatorOutput)
                document.getElementById('bdiffa').innerHTML = bDiffA.join(separatorOutput)
                document.getElementById('ainterb').innerHTML = aInterB.join(separatorOutput)
                document.getElementById('aunionb').innerHTML = inputA.concat(inputB).join(separatorOutput)
                document.getElementById('difference').innerHTML = aDiffB.concat(bDiffA).join(separatorOutput)
            }
        }

        function toggleLines() {
            const elems = document.querySelectorAll('.row > div')
            elems.forEach(elem => {
                elem.classList.contains('col-sm-12') ? elem.classList.remove('col-sm-12') : elem.classList.add('col-sm-12')
            })
        }

        function sortItems(id, isDesc = false) {

            const dataType = document.querySelector('input[name="data-type"]:checked').value
            const element = document.getElementById(id)
            let content = element.innerText.split(separatorOutput)

            if (dataType === 'string') {
                content.sort()
                if (isDesc) {
                    content = content.reverse()
                }
            } else if (dataType === 'number') {
                isDesc ? content.sort((a, b) => b - a) : content.sort((a, b) => a - b)
            }

            element.innerHTML = content.join(separatorOutput)
        }
        
        function sortAllItems(isDesc = false) {
            const operations = ['adiffb','bdiffa','ainterb','aunionb','difference']
            operations.forEach(operation => {
                sortItems(operation, isDesc)
            })
        }

        // https://www.w3resource.com/javascript-exercises/javascript-array-exercise-23.php
        // https://stackoverflow.com/questions/9229645/remove-duplicate-values-from-js-array
        // https://www.30secondsofcode.org/blog/s/copy-text-to-clipboard-with-javascript
        // https://fontawesome.com/v4.7.0/icons/

    </script></p>
<p>The post <a href="https://imediacto.com/tools/list-tools/compare-two-lists/">Compare Two Lists ~ Free List Comparison Tool</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/list-tools/compare-two-lists/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Uppercase Converter</title>
		<link>https://imediacto.com/tools/text-tools/uppercase-converter/</link>
					<comments>https://imediacto.com/tools/text-tools/uppercase-converter/#respond</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Mon, 11 May 2020 23:38:28 +0000</pubDate>
				<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=135</guid>

					<description><![CDATA[<p>The Uppercase Converter is an online tool to change your text from lowercase to UPPERCASE letters or convert from other letter case types.</p>
<p>The post <a href="https://imediacto.com/tools/text-tools/uppercase-converter/">Uppercase Converter</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot"><h2>Convert to Uppercase Letters</h2><p> The <strong>Uppercase Converter</strong> is an online tool to change your characters, words or text from <strong>lowercase to uppercase letters</strong> or convert from other letter case types like title case or alternating letter case.</p><h3 class="mb-0">Type a text to convert to uppercase<img decoding="async" src="https://imediacto.com/wp-content/uploads/2020/05/arrow-down.svg" width="30" height="30" class="arrow-down" alt="Arrow down to indicate the important textarea"></h3><div class="d-flex align-items-center flex-column"><div class="w-100" style="position: relative;"><div class="counting-chars"><span id="counting-chars">0</span> / <span id="max-length-chars">1000000</span></div><textarea name="input" id="input" class="text-uppercase" cols="30" rows="7" maxlength="1000000" placeholder="Type your text here to convert to UPPERCASE in real time..."></textarea></div></div><div class="row mb-3"><div class="col-12 mt-1"><div class="flex"><div class="div-btn mr-2" onclick="copyToClipboard('input')"> <i class="fa fa-copy"> <span>Copy to clipboard</span></i></div><div id="check" class="none"></div></div></div></div><div class="more-notes"><h2>How Does this Upper Case Conversion Tool Work?</h2><p>The text area automatically converts all the words to uppercase as you type text or paste text directly into it. Basically the input text area has a CSS class with the property <code>{ text-transform: uppercase; }</code>, that make this HTML element always in uppercase mode.</p><p> After getting the text converted to UPPERCASE, click the button below to the text area to copy it to the clipboard.</p><p> Try our most complete <strong><a href="https://imediacto.com/tools/text-tools/case-converter">text case converter online tool</a></strong> that allows you to perform various conversion types in a single tool.</p><h2>What are Uppercase Letters?</h2><p> Uppercase letters are used at the beginning of sentences, in the first letter of the first word. If in the middle of the sentence you have a proper name, names of people or animals, it must also be written in capital letters. They are also used in titles and acronyms. When a word or phrase is all written in capital letters, it can mean something important, a call for attention but it can also mean shouting.</p><p> By convention in most programming languages, uppercase letters are used for contant names.</p><p>These are the english alphabet uppercase letters:<br /><code>{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }</code></p></div><div class="notes"><div class="image"></div><div class="message"><p> Send me your feedback about this <strong>uppercase converter tool</strong> and let me know if this web application works as you need it. If you need any improvement for this online tool, send me a message in the comments section.</p><p> You can learn about how this online tool works or contribute improving the Uppercase Converter by programming some new feature or fixing bugs. For that, go to Github on <a href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/006-uppercase-converter" target="_blank">Github >> Uppercase Converter</a> and make a pull request. This will be great!</p></div></div></div> <script>window.onload=function(){wordCount('input',1000000);}</script></p>
<p>The post <a href="https://imediacto.com/tools/text-tools/uppercase-converter/">Uppercase Converter</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/text-tools/uppercase-converter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lowercase Converter</title>
		<link>https://imediacto.com/tools/text-tools/lowercase-converter/</link>
					<comments>https://imediacto.com/tools/text-tools/lowercase-converter/#respond</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Mon, 11 May 2020 19:58:51 +0000</pubDate>
				<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=131</guid>

					<description><![CDATA[<p>The Lowercase Converter is an online tool to change your text from uppercase to lowercase letters or convert from other letter case types.</p>
<p>The post <a href="https://imediacto.com/tools/text-tools/lowercase-converter/">Lowercase Converter</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot"><h2>Convert to Lowercase Letters</h2><p> The <strong>Lowercase Converter</strong> is an online tool to change your text from <strong>uppercase to lowercase letters</strong> or convert from other letter case types like title case or alternating letter case.</p><h3 class="mb-0">Type a text to convert to lowercase<img loading="lazy" decoding="async" src="https://imediacto.com/wp-content/uploads/2020/05/arrow-down.svg" width="30" height="30" class="arrow-down" alt="Arrow down to indicate the important textarea"></h3><div class="d-flex align-items-center flex-column"><div class="w-100" style="position: relative;"><div class="counting-chars"><span id="counting-chars">0</span> / <span id="max-length-chars">1000000</span></div><textarea name="input" id="input" class="text-lowercase" cols="30" rows="7" maxlength="1000000" placeholder="Type your text here to convert to lowercase in real time..."></textarea></div></div><div class="row mb-3"><div class="col-12 mt-1"><div class="flex"><div class="div-btn mr-2" onclick="copyToClipboard('input')"> <i class="fa fa-copy"> <span>Copy to clipboard</span></i></div><div id="check" class="none"></div></div></div></div><hr><div class="more-notes"><h2>How Does this Lower Case Conversion Tool Work?</h2><p>The text area automatically converts all the words to lowercase as you type text or paste text directly into it. Basically the input text area has a CSS class with the property <code>{ text-transform: lowercase; }</code>, that make this HTML element always in lowercase mode.</p><p> After getting the text converted to lowercase, click the button below to the text area to copy it to the clipboard.</p><p> Try our most complete <strong><a href="https://imediacto.com/tools/text-tools/case-converter">case converter online tool</a></strong> that allows you to perform various conversion types in a single tool.</p><h2>What are Lowercase Letters?</h2><p>Lowercase letters are used to write names of things or objects. They are called "common nouns" and are therefore written in lowercase letters. In writing most letters are lower case. By convention in most programming languages, lowercase letters are always used for variable names.</p><p>These are the english alphabet lowercase letters:<br /><code>{ a b c d e f g h i j k l m n o p q r s t u v w x y z }</code></p></div><div class="notes"><div class="image"></div><div class="message"><p> Send me your feedback about this <strong>lowercase converter tool</strong> and let me know if this application works as you need it. If you need any improvement for this online tool, send me a message in the comments section.</p><p> You can learn about how this online tool works or contribute improving the Lowercase Converter by programming some new feature or fixing bugs. For that, go to Github on <a href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/005-lowercase-converter" target="_blank">Github >> Lowercase Converter</a> and make a pull request. This will be great!</p></div></div></div> <script>window.onload=function(){wordCount('input',1000000);}</script></p>
<p>The post <a href="https://imediacto.com/tools/text-tools/lowercase-converter/">Lowercase Converter</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/text-tools/lowercase-converter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Case Converter Online</title>
		<link>https://imediacto.com/tools/text-tools/case-converter/</link>
					<comments>https://imediacto.com/tools/text-tools/case-converter/#comments</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Tue, 05 May 2020 02:09:05 +0000</pubDate>
				<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=124</guid>

					<description><![CDATA[<p>Case Converter Online is a Text Tool to change case letters. You can convert to uppercase, lowercase, sentence case, capital letters and invert text case.</p>
<p>The post <a href="https://imediacto.com/tools/text-tools/case-converter/">Case Converter Online</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot"><h2>Case Converter Online Tool</h2><p> <strong>Case Converter Online</strong> is a text tool to <strong>change letter case</strong> from a text. Using this tool will help you the following text conversions: convert to <strong>uppercase letter</strong>, <strong>lowercase letter</strong>, <strong>sentence case</strong>, <strong>capital letter</strong> and <strong>invert text case</strong>.</p><h3 class="mb-0">Put a text to convert case<img loading="lazy" decoding="async" src="https://imediacto.com/wp-content/uploads/2020/05/arrow-down.svg" width="30" height="30" class="arrow-down" alt="Arrow down to indicate the important textarea"></h3><div class="d-flex align-items-center flex-column"><div class="w-100" style="position: relative;"><div class="counting-chars"><span id="counting-chars">0</span> / <span id="max-length-chars">10000</span></div><textarea name="input" id="input" cols="30" rows="7" maxlength="10000" placeholder="Insert text here to convert case"></textarea></div><div class="buttons"><div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radio-lowercase" name="case-option" class="custom-control-input" onclick="applyCase('lowercase');"> <label class="custom-control-label label-case" for="radio-lowercase">lowercase</label></div><div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radio-uppercase" name="case-option" class="custom-control-input" onclick="applyCase('uppercase');"> <label class="custom-control-label label-case" for="radio-uppercase">UPPERCASE</label></div><div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radio-capitalize" name="case-option" class="custom-control-input" onclick="applyCase('capitalize');"> <label class="custom-control-label label-case" for="radio-capitalize">Capitalize</label></div><div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radio-sentence" name="case-option" class="custom-control-input" onclick="applyCase('sentence');"> <label class="custom-control-label label-case" for="radio-sentence">Sentence case</label></div><div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radio-invert" name="case-option" class="custom-control-input" onclick="applyCase('invert');"> <label class="custom-control-label label-case" for="radio-invert">invert Case</label></div></div></div><div class="row mb-3"><div class="col-12 d-flex align-items-center flex-column mt-3"><div class="flex"><div class="div-btn mr-2" onclick="copyToClipboard('input')"> <i class="fa fa-copy"> <span>Copy to clipboard</span></i></div><div id="check" class="none"></div></div></div></div><div class="more-notes">

<h2>WHAT IS TEXT/LETTER CASE?</h2>
<p>Letter case (or text case) is the distinction between uppercase and lowercase letters. Uppercase letters are also known as large letters, capital letters, upper case, capitals, caps and majuscule (more formal). Similarly lowercase letters are known as small letters, lower case or minuscule (more formal). Systems that distinguish between uppercase and lowercase letters have two parallel sets of letters, making it possible to match each letter with its respective pair. Each variant pair of the same letter have the same name and pronunciation and are treated identically when sorting in alphabetical order.</p>

<p>In the children's learning process, for example, they begin to learn to recognize the symbols of each of the uppercase vowels, to later learn the version of the lowercase vowels (or vice versa), and then continue to learn the uppercase consonant letters to later learn and associate them with the lowercase consonant versions.</p>

<p>In programming, in general, upper and lower case letters are considered as different symbols, that is, the string "a" is different from the string "A". For these letters to be considered the same symbol, it is necessary to enable the "case insensitive" mode. Thus, if we perform the comparison "a" == "A", with case insensitive enabled, the result will be true.</p>

<p>In orthography, lowercase and lowercase letters are generally applied in a mixed way in a text, and their use is prescribed by the grammatical conventions of each language. Capital letters are reserved for special purposes, such as the letters of a given name or acronyms.</p>

<h3>Letter Case Usage Contexts</h3>
<p>There are several contexts where it is agreed to use only one type of case or to use it in a specific format. The following are some practical cases.</p>

<h4>Use of text cases in programming</h4>
<p>In programming languages ​​like C, C ++, Java, JavaScript, PHP, by convention, lowercase letters are always used for variable names and uppercase letters for constant names. For these two letter case types, when it is necessary to write the name of a variable or constant with two words, the "camel case" format is used, which means to unite (concatenate the words removing the spaces) the two words, to start lowercase the first word and transform the first letter of the second word to uppercase, for example: myVariable, letterCase, upperCase, camelCase. In the case of a variable with three or more words, it would follow the same logic: myLetterCase, textCaseConverter. The union of constants with two or more words, in turn, is done in the snake case (snake_case) format, where spaces are replaced by the underscore symbol: LETTER_CASE, TEXT_CASE_CONVERTER.</p>

<p>There are other situations in programming where other types of conventions are applied. Class names in Java are written in the upper camel case format, also known as "Pascal Case", where the camel case style is applied, but the first letter of the variable starts with a capital letter, for example: LetterCase, TextCaseConverter. Package names in Java are all written in lowercase: lettercasepackage, textcaseconverter.</p>

<h4>Use of letter cases in mathematics</h4>
<p>In mathematics, uppercase letters are used to indicate sets and lowercase letters represent members of sets. Lower case letters also represent names of functions and variables, like the f(x) function.</p>

<h4>Use of letter cases in texts and chats on the web</h4>
<p>In informal writing among friends on the internet, when a sentence is written in all caps, it gives the feeling that the person who wrote it is shouting. When using only one or two words in uppercase, in the middle of a text, this can indicate emphasis</p>.

<h2>Letter Case Conversion Functions</h2><p>In this case converter tool you'll find these following <a href="https://imediacto.com/blog/list-of-letter-case-types-in-programming">letter case type</a> functions:</p><h3 class="case-name">Lowercase converter</h3><p class="lead"> <strong><a href="https://imediacto.com/tools/text-tools/lowercase-converter/">Lowercase converter</a></strong> is a function that converts the letters of a text to <strong>lowercase letters</strong>. You can convert from <strong>uppercase to lowercase</strong> or from any other text case types. When letter is already in lowercase, it will remain in that format.<br /> <span class="ex">Example:</span> "i like programming in lowercase letters".</p><hr><h3 class="case-name">Uppercase converter</h3><p class="lead"> <strong><a href="https://imediacto.com/tools/text-tools/uppercase-converter/">Uppercase converter</a></strong> converts the letters of a text <strong>to uppercase</strong>, also known as ALL CAPS format case. You can convert from <strong>lowercase to uppercase</strong> or from any other text case types. When letter is already capitalized, it will remain in that format.<br> <span class="ex">Example:</span> "YOU ARE VIEWING UPPERCASE LETTERS".</p><hr><h3 class="case-name">Capitalize - Capital letter converter</h3><p class="lead"> In the capitalize function, for each word, it make the first letter capitalized and keeps the remaining letters of the word lowercase.<br /> <span class="ex">Example:</span> "This Is A Good Capitalized Phrase".</p><hr><h3 class="case-name">Sentence case converter</h3><p class="lead"> The <strong>sentence case converter</strong> is a function that capitalizes the first letter of each sentence in the text and keeps or converts the remaining letters of all words in the sentence to lowercase letters. Each sentence separation is based on the following symbols: dot (.), exclamation (!), interrogation (?) and ellipsis (...).<br /><span class="ex">Example:</span> "Hi! I'm mary and i like programming in javascript language. And you?".</p><hr><h3 class="case-name">Case inverter</h3><p class="lead"> The case inverter reverses the case of each letter of the text. When the algorithm finds a lowercase letter it converts to uppercase, and when it finds a lowercase letter it converts to lowercase.<br /><span class="ex">Example:</span> for the text "Change case of tExt IS so funnY!", the result will be "cHANGE CASE OF TeXT is SO FUNNy!".</p></div><div class="notes"><div class="image"></div><div class="message"><p> Send me your feedback about this <strong>text case converter</strong> and let me know if you have some specific need, then I can implement this new feature and improve this online tool. Also, let me know if you have some need about other different <strong>text tool</strong> or <strong>coding tool set</strong>.</p><p> You can learn about how this online tool works or contribute improving the Case Converter by programming some new feature or fixing bugs. For that, go to Github on <a href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/004-case-converter" target="_blank">Github >> Case Converter</a> and make a pull request. This will be great!</p></div></div></div>
        <script>
            // Custom Code by Dante
            // ----------------------------------------------

            function isLetter(s) {
                return s.match("^[a-zA-Z()]+$");
            }

            // By lov2dev.com --------------
            function titleCase(str) {
                return str.replace(/\w\S/i, function (t) {
                    return t.toUpperCase();
                });
            }

            function sentenceCase(str) {
                return str.replace(/[a-z]/i, function (letter) {
                    return letter.toUpperCase();
                });
            }

            // by lov2dev.com
            function invertCase(str) {
                var output = "";

                for (var i = 0; i < str.length; i++) {
                    var ch = str[i];

                    if (ch === ch.toUpperCase()) {
                        output += ch.toLowerCase();
                    } else {
                        output += ch.toUpperCase();
                    }
                }

                return output;
            }

            function textToLowercase() {
                jQuery("#input").val(jQuery("#input").val().toLowerCase());
            }

            function textToUpperCase() {
                jQuery("#input").val(jQuery("#input").val().toUpperCase());
            }

            function applyCase(textCase) {
                if (textCase == "lowercase") {
                    textToLowercase();
                } else if (textCase == "uppercase") {
                    textToUpperCase();
                } else if (textCase == "capitalize") {
                    textToLowercase();
                    let inputText = jQuery("#input");
                    let lines = inputText.val().split("\n");

                    inputText.val('')
                    lines.forEach((line) => {
                        let words = line.split(' ');
                        let wordsCapitalized = [];
                        words.forEach((word) => {
                            word = word.toLowerCase();
                            word = word.charAt(0).toUpperCase() + word.slice(1);
                            wordsCapitalized.push(word);
                        });
                        inputText.val(inputText.val() + wordsCapitalized.join(" ") + '\n');
                        words = [];
                    });
                } else if (textCase == "sentence") {
                    textToLowercase();
                    let inputText = jQuery("#input").val();
                    let sentences = inputText.match(/[^\.!\?]+[\.!\?]+["']?|\s*$|[^\r\n]+/g);

                    let sentencesCapitalized = [];
                    sentences.forEach((sentence) => {
                        sentence = sentenceCase(sentence);
                        sentencesCapitalized.push(sentence);
                    });
                    jQuery("#input").val(sentencesCapitalized.join(""));
                    sentences = [];
                } else if (textCase == "invert") {
                    jQuery("#input").val(invertCase(jQuery("#input").val()));
                }
            }
            window.onload = function () {
                wordCount('input', 1000000);
            }
</script></p>
<p>The post <a href="https://imediacto.com/tools/text-tools/case-converter/">Case Converter Online</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/text-tools/case-converter/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>CSV to JSON Converter</title>
		<link>https://imediacto.com/tools/text-tools/csv-to-json-converter/</link>
					<comments>https://imediacto.com/tools/text-tools/csv-to-json-converter/#comments</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Sun, 15 Mar 2020 05:34:39 +0000</pubDate>
				<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=28</guid>

					<description><![CDATA[<p>Easily convert your CSV file to JSON with this Online Tool. You can chose a "file.csv" or put directly the text in CSV format (separated by commas).</p>
<p>The post <a href="https://imediacto.com/tools/text-tools/csv-to-json-converter/">CSV to JSON Converter</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot"><h2>Free Online CSV to JSON Converter</h2><p> <strong>CSV to JSON Converter</strong> is a free online tool that converts a given text in CSV format to JSON format. You can chose a "file.csv", "file.txt" with a text structured in CSV format, or put directly the text in CSV format (separated by commas) in the first input text area. You can ignore some fields as needed.</p><h3>Select your CSV file or type in the first box area</h3><div class="custom-file"> <input type="file" class="custom-file-input" id="file" onchange="changeFileNameBoxOnInput(event)" accept=".csv,text/plain"> <label id="holder" class="input-drag-drop" for="file"><div id="file-name" class="file-name text-truncate">Select CSV file or drag and drop here...</div><div class="text-browse"><i class="fa fa-search"></i> <span class="hidden-680-down">Browse</span></div> </label></div><div class="display-flex-row display-flex-col-980-down"><div class="textarea"><textarea class="mb-2" name="area-csv" id="area-csv" cols="30" rows="12" placeholder="Type here your text in comma separated format"></textarea><button class="btn btn-success mb-2" onclick="stringCSVtoJSON();" aria-label="Button to convert CSV to JSON"> <i class="fa fa-chevron-right"></i> Convert to JSON </button><div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input" id="filtering" onchange="toggleFieldsToIgnore(event)" /> <label class="custom-control-label" for="filtering">I want to ignore some fields</label><div id="fields-to-exclude"></div></div></div><div class="icon-apply"> <i class="fa fa-chevron-right" onclick="stringCSVtoJSON()" aria-label="Icon button to convert CSV to JSON" title="Button to convert CSV to JSON"></i> <i class="fa fa-close" onclick="clearAreas()" aria-label="Icon button to clear data" title="Button to clear data"></i></div><div class="textarea"><textarea class="mb-2" name="output" id="output" cols="30" rows="12"></textarea><div class="flex"><div class="div-btn mr-1" onclick="downloadJSON('json')" title="Download as JSON" aria-label="Button to download the output JSON"> <i class="fa fa-download"> <span>JSON</span></i></div><div class="div-btn mr-1" onclick="downloadJSON('txt')" title="Download as TXT" aria-label="Button to download the output JSON"> <i class="fa fa-download"> <span>TXT</span></i></div><div class="flex"><div class="div-btn mr-2" onclick="copyToClipboard()" title="Copy output to clipboard" area-label="Button to copy the JSON to clipboard"> <i class="fa fa-copy"> <span class="hide-on-xs">Copy to clipboard</span></i></div><div id="check" class="none" style="width: 18px; height: 18px; background-size: contain; margin-bottom: 4px;"></div></div></div></div></div><hr><h2>Convert CSV to JSON Excluding Fields</h2><p>After you select or type your CSV in the first text area, you can choose some fields to ignore, so these fields will don't appear in the output JSON format. For that, mark the checkbox "I want to ignore some fields" below of the apply button. This function can be very useful when you have a CSV with many fields and many records, and you need to ignore some fields.</p><h2>What is CSV format file?</h2><p>The CSV (comma-separated values) is a text file delimited by lines where each line is delimited by commas. Usually, the first line of the CSV is the header for the data of the remaining lines.</p><p>CSV format can be read by plain text editors, as it is plain text, in fact. Programs like LibreOffice Calc and Microsoft Office Excel read this format, organizing them between columns and rows.</p><h2>What is JSON format file?</h2><p><a href="https://www.json.org/json-en.html" target="_blank">JSON (JavaScript Object Notation)</a> is a compact text format used for simple and fast data exchange between systems, where its main purpose is the use of key-value pairs.</p><p>Therefore, CSV and JSON are widely used <a href="https://imediacto.com/blog/xml-csv-json-data-formats/">data formats</a> and we constantly need to <strong>convert CSV to JSON</strong> or convert from JSON to CSV.</p><div class="notes"><div class="image"></div><div class="message"><p> Give me your feedback about the <strong>CSV to JSON Converter</strong> and let me know if you have some specific need or if you found some error in this tool, then I can implement this new feature to you and improve or fix this <strong>text tool</strong>. Also, let me know if you have some need about other different <strong>JSON tool converter</strong> or <strong>coding tool set</strong>.</p><p> You can learn about how this online tool works or contribute improving the <strong>CSV to JSON Converter</strong> by programming some new feature or fixing bugs. For that, go to Github on <a href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/003-csv-to-json-converter" target="_blank">Github &gt;&gt; CSV to JSON Converter</a> and make a pull request. This will be great!</p></div></div><hr></div>
<script>
    let fileNameBox = document.getElementById('file-name');
    let areaCSV = document.getElementById('area-csv');
    let areaJSON = document.getElementById('output');
    let csv = '';
    let fileType = '';
    let fileExtension = '';
    let inputMessageDefault = 'Select CSV file or drag and drop here...';

    // --------------------------------------------------------
    // Main functions
    // --------------------------------------------------------

    // Drag and Drop actions
    let holder = document.getElementById('holder');
    holder.ondragover = function () {
        this.classList.add('input-hover');
        this.classList.remove('input-error');
        this.classList.remove('input-drop');
        return false;
    };
    // holder.ondragend = function () { this.classList.remove('hover-input'); return false; };
    holder.ondragleave = function () { this.classList.remove('input-hover'); return false; };
    holder.ondrop = function (e) {
        this.classList.remove('input-error');
        this.classList.add('input-drop');
        e.preventDefault();
        readfiles(e.dataTransfer.files);
    }

    // Read the file uploaded through Drag and Drop
    function readfiles(files) {

        fileType = files[0].type;
        fileNameBox.innerText = files[0].name;

        // Exit process if the file type is not CSV
        if (!isfileTypeAndAllowed(fileType)) {
            return false;
        }

        reader = new FileReader();
        reader.onload = function (event) {
            csv = event.target.result;
            areaCSV.value = csv;
        }
        reader.readAsText(files[0]);
    }

    // Fisrt Step :: Read csv is the CSV file with headers
    function procressInputFile() {

        let inputFile = document.getElementById('file');

        if ('files' in inputFile && inputFile.files.length > 0) {
            let file = inputFile.files[0];
            fileNameBox = file.name;
            fileType = file.type;
            fileExtension = fileNameBox.substring(fileNameBox.lastIndexOf('.'), fileNameBox.length)

            // Exit process if the file type is not allowed (CSV and TXT)
            if (!isfileTypeAndAllowed(fileType)) {
                return false;
            }

            let fileReader = new FileReader();
            fileReader.onload = function (event) {
                csv = event.target.result;
                areaCSV.value = csv;
            }
            fileReader.readAsText(file);
        } else {
            console.log('You need select a CSV file!');
        }
    }

    // Last Step :: Convert the CSV string to JSON and print on textarea
    function stringCSVtoJSON() {

        csv = areaCSV.value.trim();
        let lines = csv.split("\n");
        let result = [];
        let headers = lines[0].split(",");

        // Elements to exclude
        const ignore = document.querySelectorAll('#fields-to-exclude .custom-control-input:checked')
        const headersToIgnore = [...ignore].map(el => {
            // return el.id.substring(el.id.indexOf('-') + 1, el.id.length) //use this if field ID is like field-0, field-1, ...
            return parseInt(el.id)
        })

        const isFiltering = document.getElementById('filtering').checked ? true : false

        for (let i = 1; i < lines.length; i++) {

            let obj = {};
            let currentline = lines[i].split(",");

            for (let j = 0; j < headers.length; j++) {
                try {
                    if (isFiltering) {
                        if (!headersToIgnore.includes(j)) {
                            if (!Number(currentline[j].trim())) {
                                // Case value is string
                                obj[headers[j].trim()] = currentline[j].trim();
                            } else {
                                // Case value is a number
                                let n = Number(currentline[j].trim());
                                obj[headers[j].trim()] = n;
                            }
                        }
                    } else {
                        if (!Number(currentline[j].trim())) {
                            // Case value is string
                            obj[headers[j].trim()] = currentline[j].trim();
                        } else {
                            // Case value is a number
                            let n = Number(currentline[j].trim());
                            obj[headers[j].trim()] = n;
                        }
                    }
                } catch (error) {
                    console.log('Has inconsistent data... ', error);
                }
            }
            result.push(obj);
        }

        //return result; //JavaScript object
        let json = JSON.stringify(result, undefined, 4); //JSON
        areaJSON.value = json;
    }

    function toggleFieldsToIgnore(event) {
        event.preventDefault();
        if (event.target.checked) {

            // const fields = document.getElementById('area-csv').value.split('\n').shift(); // get first line
            const textarea = document.getElementById('area-csv');
            if (textarea.value == '') {
                return false
            }

            textarea.focus({ preventScroll: true })
            textarea.setSelectionRange(0, textarea.value.indexOf('\n'))
            textarea.blur()
            // const fieldsSelected = window.getSelection().toString() // not working on Mozilla Firefox
            const fieldsSelected = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd); // more browser compatible way
            const fields = fieldsSelected.split(',').map(field => field.trim())
            
            // Generate a checkbox for each CSV field
            fields.forEach((campo, index) => {

                const divElem = document.createElement('div');
                divElem.setAttribute('class', 'element-to-exclude custom-control custom-checkbox');

                const iputElem = document.createElement("input");
                iputElem.setAttribute("type", "checkbox");
                iputElem.setAttribute("id", index);
                iputElem.setAttribute("class", "custom-control-input");
                divElem.appendChild(iputElem);

                const labelElem = document.createElement("label");
                labelElem.setAttribute("for", index);
                labelElem.setAttribute("class", "custom-control-label");
                labelElem.innerText = campo;
                divElem.appendChild(labelElem);

                // Add the new checkbox element to group div
                document.getElementById('fields-to-exclude').appendChild(divElem);
            });
        } else {
            document.getElementById('fields-to-exclude').innerHTML = ''
        }
    }

    // --------------------------------------------------------
    // Auxiliar functions
    // --------------------------------------------------------

    // Write the name of file on input box
    function changeFileNameBoxOnInput(event) {
        let partsPath = event.target.value.split('\\');
        fileNameBox.innerText = partsPath[partsPath.length - 1];
        procressInputFile();
    }

    function clearAreas() {
        areaCSV.value = '';
        areaJSON.value = '';
        csv = '';
        document.getElementById('file-name').innerText = inputMessageDefault;
    }

    function isfileTypeAndAllowed(fileType) {

        console.log('filetype: ', fileType)

        // Exit process if the file type is not CSV
        const allowedFileTypes = ['text/csv', 'text/comma-separated-values', 'application/vnd.ms-excel', 'text/plain']; // 'text/comma-separated-values'

        if (!(allowedFileTypes.includes(fileType))) { /* && fileExtension != '.csv' */
            holder.classList.add('input-error');
            fileNameBox.innerText = 'This file type is not allowed!';
            setTimeout(() => {
                fileNameBox.innerText = inputMessageDefault;
                holder.classList = 'input-drag-drop'; // erase other classes
            }, 5000);
            return false; // exit process
        }
        return true;
    }

    // Download function
    /*function download(filename, text) {

        let element = document.createElement('a');

        element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
        element.setAttribute('download', filename);
        element.style.display = 'none';
        document.body.appendChild(element);
        element.click();
        document.body.removeChild(element);
    }*/

    // Start file download in TXT or JSON
    function downloadJSON(extension) {

        // Generate download of hello.txt file with some content
        let data = document.getElementById("output").value;
        let filename = "csv-to-json-imediacto." + extension;

        fileNameBox = document.getElementById('file-name');

        if (fileNameBox.innerText != inputMessageDefault) {

            let lastIndexDot = fileNameBox.innerText.lastIndexOf('.');
            if (lastIndexDot != -1) {
                filename = fileNameBox.innerText.substring(0, lastIndexDot) + '-json.' + extension;
            } else {
                // Case file without dot extension
                filename = fileNameBox.innerText + '.' + extension;
            }
        }

        download(filename, data);
    }
</script></p>
<p>The post <a href="https://imediacto.com/tools/text-tools/csv-to-json-converter/">CSV to JSON Converter</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/text-tools/csv-to-json-converter/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>HTML List Generator ~ Convert Text to HTML</title>
		<link>https://imediacto.com/tools/html-tools/html-list-generator-convert-text-to-html/</link>
					<comments>https://imediacto.com/tools/html-tools/html-list-generator-convert-text-to-html/#comments</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Sun, 03 Nov 2019 02:55:18 +0000</pubDate>
				<category><![CDATA[HTML Tools]]></category>
		<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=26</guid>

					<description><![CDATA[<p>HTML List Generator is an Online Tool that converts and transforms plain text to ordered or unordered HTML List and others Text List Formats.</p>
<p>The post <a href="https://imediacto.com/tools/html-tools/html-list-generator-convert-text-to-html/">HTML List Generator ~ Convert Text to HTML</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot"><h2>Converting Text to HTML List</h2><p>The <strong>HTML List Generator</strong> is an <strong>HTML converter online tool</strong> that <strong>converts text to html list</strong> and others <strong>text list formats</strong>. Using this tool will help you convert some text list and transform it to a unordered or ordered HTML list, as well these text list formats: text separated by lines, spaces, commas, semicolons and some other custom symbols you want to use.</p><div class="row"><div class="col-12"><h3>Input (insert plain text)</h3><textarea id="input" class="mb-2" rows="7" placeholder="Insert a plain text here to convert it to a HTML list."></textarea></div></div><div class="row"><div class="col-md-5 col-sm-12 mb-3"><h3>Input text options</h3><div class="custom-control custom-radio"> <input type="radio" id="radio1" name="text-origin" value="lines" class="custom-control-input" checked> <label class="custom-control-label" for="radio1">From lines</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio2" name="text-origin" value="commas" class="custom-control-input"> <label class="custom-control-label" for="radio2">Separeted by commas</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio3" name="text-origin" value="semicolons" class="custom-control-input"> <label class="custom-control-label" for="radio3">Separeted by semicolons</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio4" name="text-origin" value="spaces" class="custom-control-input"> <label class="custom-control-label" for="radio4">Separeted by space</label></div></div><div class="col-md-7 col-sm-12"><h3>Output List type options</h3><div class="custom-control custom-radio"> <input type="radio" id="radio5" name="list-type" value="ul" class="custom-control-input" onclick="toggleCustomInput(false)" checked> <label class="custom-control-label" for="radio5">Unordered list</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio6" name="list-type" value="ol" class="custom-control-input" onclick="toggleCustomInput(false)"> <label class="custom-control-label" for="radio6">Ordered list</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio7" name="list-type" value="lines" class="custom-control-input" onclick="toggleCustomInput(false)"> <label class="custom-control-label" for="radio7">Lines</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio8" name="list-type" value="commas" class="custom-control-input" onclick="toggleCustomInput(false)"> <label class="custom-control-label" for="radio8">Commas</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio9" name="list-type" value="semicolons" class="custom-control-input" onclick="toggleCustomInput(false)"> <label class="custom-control-label" for="radio9">Semicolons</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio10" name="list-type" value="spaces" class="custom-control-input" onclick="toggleCustomInput(false)"> <label class="custom-control-label" for="radio10">Spaces</label></div><div class="custom-control custom-radio"> <input type="radio" id="radio11" name="list-type" value="custom" class="custom-control-input" onclick="toggleCustomInput(true)"> <label class="custom-control-label" for="radio11">Custom</label></div><div class="custom-control" style="width: 50%;"> <input type="text" id="custom" placeholder="Insert a custom symbol" class="none custom-symbol"></div><h3>Output extra options</h3><div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input" id="wrap-in-quotes" onchange="toggleQuotes()"> <label class="custom-control-label" for="wrap-in-quotes">Wrap the words in quotes</label><div id="quote-options" class="none"><div class="custom-control custom-radio"> <input type="radio" id="doble-quotes" name="quotes" value="doble" class="custom-control-input"> <label class="custom-control-label" for="doble-quotes">Doble quotes</label></div><div class="custom-control custom-radio"> <input type="radio" id="single-quotes" name="quotes" value="single" class="custom-control-input"> <label class="custom-control-label" for="single-quotes">Single quotes</label></div></div> <span class="help-text">Works only with lines, commas, semicolons and spaces</span></div></div></div><div class="row mb-3"><div class="col-12"> <button class="btn btn-success" onclick="convertToList()" area-label="Button to convert text to HTML list"><i class="fa fa-chevron-right"></i> Convert list</button></div></div><div class="row mb-3"><div class="col-12"><h3>Output (HTML list or other list formats)</h3><textarea class="mb-2" id="output" rows="7"></textarea><div class="flex"><div class="div-btn mr-1" onclick="copyToClipboard()" title="Copy output to clipboard" area-label="Copy the output to clipboard"> <i class="fa fa-copy"> <span>Copy to clipboard</span></i></div><div id="check" class="none"></div></div></div></div><hr><div class="more-notes"><p> Notes: <br> The output text list options are generated with a space after the separator symbol. You can use the custom option to generate that output only with symbols without spaces.</p><p> Example: type comma (,) on custom option and will be generated a list like (banana,apple,blueberry).</p><hr>
<p>After generating your HTML list you may need to compare two lists to see what matches, what’s unique, and what’s different between both lists. You can try our free tool List <a href="https://imediacto.com/tools/list-tools/compare-two-lists/">Comparison List Tool</a> now!</p>

</div><div class="notes"><div class="image"></div><div class="message"><p> Send me your feedback about the <strong>HTML List Generator</strong> and let me know if you have some specific need, then I can implement this new feature to you and improve this <strong>html tool</strong>. Also, let me know if you have some need about other different <strong>text tool / HTML tool</strong> or <strong>coding tool set</strong>. <br> You can learn about how this online tool works or contribute improving the HTML List Generator by programming some new feature or fixing bugs. For that, go to Github on <a href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/002-html-list-generator" target="_blank">Github >> HTML List Generator</a> and make a pull request. This will be great!</p></div></div></div><script>
            function toggleCustomInput(showCustomInput) {
                if (showCustomInput) {
                    document.getElementById('custom').classList.remove('none');
                } else {
                    document.getElementById('custom').classList.add('none');
                }
            }
    
            function toggleQuotes() {
                console.log('clicou no chekbox');
                
                let quoteOption = document.getElementById('wrap-in-quotes');
                if (quoteOption.checked) {
                    document.getElementById('quote-options').classList.remove('none');
                    document.getElementById('doble-quotes').checked = true;
                } else {
                    document.getElementById('quote-options').classList.add('none');
                }
            }
    
            function convertToList() {
                let input = document.getElementById('input').value;
                let textOrigin = document.querySelector('input[name="text-origin"]:checked').value;
                let listType = document.querySelector('input[name="list-type"]:checked').value;
                let listTypeCustom = ''
                let quotes = ''
    
                // Input sepearator
                let separator = '';
                if (textOrigin == 'lines') {
                    separator = '\n';
                } else if (textOrigin == 'commas') {
                    separator = ',';
                } else if (textOrigin == 'semicolons') {
                    separator = ';';
                } else if (textOrigin == 'spaces') {
                    separator = ' ';
                }
    
                // Get quote type
                if (document.getElementById('wrap-in-quotes').checked) {
                    checkboxQuotes = document.querySelector('input[name="quotes"]:checked').value;
                    if (checkboxQuotes == 'doble')
                    {
                        quotes = '"'
                    } else {
                        quotes = '\''
                    }
                }
    
                let lines = input.split(separator);
                let output = '';
    
                if (listType == 'ul' || listType == 'ol') {
                    output = `<${listType}>\n`;
                    lines.forEach(e => {
                        output += `    <li>${e.trim()}</li>\n`
                    });
                    output += `</${listType}>`
                } else {
    
                    if (listType == 'commas') {
                        listType = ','
                    } else if (listType == 'semicolons') {
                        listType = ';'
                    } else if (listType == 'custom') {
                        listTypeCustom = document.getElementById('custom').value;
                    }
    
                    lines.forEach(term => {
    
                        // Apply the quotes if exists
                        term = quotes + term.trim() + quotes;
    
                        if (listType == 'lines') {
                            output += `${term}\n`;
                        } else if (listType == 'spaces') {
                            output += `${term} `;
                        } else if (listType == 'custom') {
                            output += term + listTypeCustom;
                        } else if (listType == ',' || listType == ';') {
                            output += `${term}${listType} `;
                        }
                    });
                }
    
                // Remove the last symbol
                if (listType == 'lines' || listType == 'spaces') {
                    output = output.substring(0, output.length - 1);
                } else if (listType == ',' || listType == ';') {
                    output = output.substring(0, output.length - 2);
                } else if (listType == 'custom') {
                    output = output.substring(0, output.length - listTypeCustom.length);
                }
                document.getElementById('output').value = output;
                copyToClipboard();
            }
            function copyToClipboard() {
                let copyText = document.getElementById("output");
                copyText.select();
                copyText.setSelectionRange(0, 99999);
                document.execCommand("copy");
    
                let check = document.getElementById("check");
                check.classList.remove('none');
                setTimeout(() => {
                    check.classList.add('none');
                }, 3000);
            }
        </script></p>
<p>The post <a href="https://imediacto.com/tools/html-tools/html-list-generator-convert-text-to-html/">HTML List Generator ~ Convert Text to HTML</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/html-tools/html-list-generator-convert-text-to-html/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Remove Line Breaks Online</title>
		<link>https://imediacto.com/tools/text-tools/remove-line-breaks-online/</link>
					<comments>https://imediacto.com/tools/text-tools/remove-line-breaks-online/#respond</comments>
		
		<dc:creator><![CDATA[Dante]]></dc:creator>
		<pubDate>Fri, 01 Nov 2019 15:06:21 +0000</pubDate>
				<category><![CDATA[Text Tools]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://imediacto.com/?p=20</guid>

					<description><![CDATA[<p>This application removes line breaks from a text, leaving all text on a single line. This can be useful, for example, when you want to copy text from a PDF.</p>
<p>The post <a href="https://imediacto.com/tools/text-tools/remove-line-breaks-online/">Remove Line Breaks Online</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="boot"><div class="row mb-3"><div class="col-sm-12"><h2>Removing line breaks from a text</h2><p> <strong>Remove line breaks online</strong> and multiple whitespaces from text using this <strong>text tool</strong>, leaving all text on a single line. This can be useful, for example, when you want to copy text from a PDF, which when pasting, this text has line breaks where it should have followed the text.</p></div></div><div class="row"><div class="col-sm-12 mb-3"><h3>Input your text</h3><textarea id="input" class="materialize-textarea" rows="7" onClick="this.select();" placeholder="Insert a text to remove line breaks"></textarea><span class="help-text">Just press Ctrl + Enter to remove line breaks.</span> <button id="btn-remove-lines" class="btn btn-success mt-3" onclick="applyRemovingLines()"><i class="fa fa-chevron-right"></i> Remove line breaks</button></div></div><div class="row mb-3"><div class="col-sm-12 mb-3"><h3>Output text</h3><textarea id="output" class="mb-2" cols="30" rows="7"></textarea><div class="flex"><div class="div-btn mr-1" onclick="copyToClipboard()" title="Copy output to clipboard"> <i class="fa fa-copy"> <span>Copy to clipboard</span></i></div><div id="check" class="none"></div></div></div></div><h2>Hidden actions</h2><p>This tool was implemented to facilitate the work of those who are translating several pieces of text and need to remove unwanted break lines.</p><p>First, when clicking on the input box, a function is triggered to select all the text in this box, so you only need to do Ctrl+V to paste the text to remove line breaks.</p><p>Second, press Ctrl+Enter and the text will be immediately changed by removing the line breaks and will already be copied to the clipboard.</p><div class="notes"><div class="image"></div><div class="message"><p> Send me your feedback about this tool to help to <strong>remove line breaks</strong> through this online application and let me know if you have some specific need, then I can implement this new feature to you and improve this <strong>text tool</strong>. Also, let me know if you have some need about other different <strong>text tool</strong> or <strong>coding tool set</strong>.</p><p> You can learn about how this online tool works or contribute improving the Line Breaks Remover by programming some new feature or fixing bugs. For that, go to Github on <a href="https://github.com/dantovsky/Imediacto-Online-Tool-Set/tree/master/tools/001-remove-line-breaks-online" target="_blank" rel="noopener noreferrer">Github &gt;&gt; Remove Line Breaks Online</a> and make a pull request. Thanks a lot!</p></div></div></div>
<script>
			// Listener to remove break lines
			document.onkeyup = function (e) {
				if (e.ctrlKey && e.which === 13) {
					applyRemovingLines();
				}
			}
	
			function applyRemovingLines() {
				let input = document.getElementById('input').value;
				let output = document.getElementById('output');
				input = input.replace(/\s+/g, ' ').trim();
				output.value = input;
				copyToClipboard();
			}
	
			function copyToClipboard() {
				let copyText = document.getElementById("output");
				copyText.select();
				copyText.setSelectionRange(0, 99999);
				document.execCommand("copy");
	
				let check = document.getElementById("check");
				check.classList.remove('none');
				setTimeout(() => {
					check.classList.add('none');
				}, 3000);
			}
	
			// Help links:
			// https://stackoverflow.com/questions/10965433/regex-replace-multi-line-breaks-with-single-in-javascript
			// https://medium.com/@melwinalm/crcreating-keyboard-shortcuts-in-javascripteating-keyboard-shortcuts-in-javascript-763ca19beb9e
		</script></p>
<p>The post <a href="https://imediacto.com/tools/text-tools/remove-line-breaks-online/">Remove Line Breaks Online</a> appeared first on <a href="https://imediacto.com">Free Online Tools - Imediacto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://imediacto.com/tools/text-tools/remove-line-breaks-online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
