@@ -0,0 +1,63 @@ | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> | |||||
<title>TXT</title> | |||||
<meta name="description" content="Text formatting online at TXTformat.com"> | |||||
<meta name="keywords" content="text formatting, online text formatter"> | |||||
<script async="" type="text/javascript" src="textformatting.js"></script> | |||||
<meta http-equiv="Content-Language" content="FR"> | |||||
<link href="https://cdn.materialdesignicons.com/1.7.22/css/materialdesignicons.min.css" rel="stylesheet" type="text/css"> | |||||
<link href="style.css" rel="stylesheet" type="text/css"> | |||||
</head> | |||||
<body> | |||||
<div id="row"> | |||||
<div class="col-lg-12"> | |||||
<h1><i class="mdi mdi-format-clear"></i> TXT Unformat</h1> | |||||
<p class="text-muted"> | |||||
Outil simple de suppression de mise en forme de texte pour accelerer certaines taches qui pourraient etres longues et repetitives.<br> | |||||
Indique egalement rapidement combien de mots et de lettres sont dans votre texte. | |||||
</p> | |||||
<hr> | |||||
</div> | |||||
<div class="col-lg-7"> | |||||
<div class="col-lg-8"> | |||||
<button class="btn btn-success" onclick="selectall();"><i class="mdi mdi-cursor-default"></i></button> | |||||
| |||||
<button class="btn btn-danger" onclick="cleartext();"><i class="mdi mdi-eraser"></i></button> | |||||
| |||||
<button class="btn btn-default" onclick="capitalizesentences();"><i class="mdi mdi-wrench"></i> <strong>L</strong>ettrine</button> | |||||
| |||||
<button class="btn btn-default" onclick="uppercase();"><i class="mdi mdi-wrench"></i> MAJUSCULE</button> | |||||
| |||||
<button class="btn btn-default" onclick="lowercase();"><i class="mdi mdi-wrench"></i> minuscule</button> | |||||
| |||||
<button class="btn btn-default hidden" onclick="capitalizewords();">Capitalize Words</button> | |||||
</div> | |||||
<div class="col-lg-2"><input class="form-control" type="text" readonly="readonly" id="words" value="" disabled=""></div> | |||||
<div class="col-lg-2"><input class="form-control" type="text" readonly="readonly" id="characters" value="" disabled=""></div> | |||||
<br> | |||||
<br> | |||||
<textarea class="form-control" rows="16" id="thetext" onkeyup="updatecounts();" onchange="updatecounts();" onfocus="updatecounts();" placeholder="Votre texte ici :)"></textarea> | |||||
</div> | |||||
<hr> | |||||
<div class="col-lg-5"> | |||||
<p><br><br><br></p> | |||||
<div class="col-lg-12"><button class="btn btn-info" onclick="replacetext();">Remplacer</button></div> | |||||
<div class="col-lg-5"><input class="form-control" type="text" id="from" value=""></div> | |||||
<div class="col-lg-1">par</div> | |||||
<div class="col-lg-6"><input class="form-control" type="text" id="to" value=""></div> | |||||
<div class="col-lg-12 hidden"><input type="checkbox" id="cs">Case</div> | |||||
<p><br><br><br><br><br></p> | |||||
<div class="col-lg-12"><button class="btn btn-success" onclick="addtext();">Ajouter</button></div> | |||||
<div class="col-lg-5"><input class="form-control" type="text" id="add" value=""></div> | |||||
<div class="col-lg-7"><select class="form-control" id="addpos"><option value="start">au debut de chaque ligne.</option><option value="end">a la fin de chaque ligne.</option></select></div> | |||||
<p><br><br><br><br><br></p> | |||||
<div class="col-lg-12"><button class="btn btn-warning" onclick="trimtext();">Supprimer les</button></div> | |||||
<div class="col-lg-3"><select class="form-control" id="trimnumber"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option></select></div> | |||||
<div class="col-lg-9"><select class="form-control" id="trimpos"><option value="first">premieres lettres de chaque ligne.</option><option value="last">dernieres lettres de chaque ligne.</option></select></div> | |||||
</div> | |||||
</div> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,200 @@ | |||||
function cleartext() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
t.value = ''; | |||||
updatetextlength(); | |||||
updatewords(); | |||||
} | |||||
function selectall() { | |||||
var t = document.getElementById("thetext"); | |||||
t.focus(); | |||||
t.select(); | |||||
} | |||||
function updatetextlength() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
var c = document.getElementById("characters"); | |||||
c.value = t.value.length+' lettres'; | |||||
} | |||||
function updatewords() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
var char_count = t.value.length; | |||||
var fullStr = t.value + " "; | |||||
var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi; | |||||
var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, ""); | |||||
var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi; | |||||
var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " "); | |||||
var splitString = cleanedStr.split(" "); | |||||
var word_count = splitString.length -1; | |||||
var w = document.getElementById("words"); | |||||
w.value = word_count+' mots'; | |||||
} | |||||
function updatecounts() | |||||
{ | |||||
updatetextlength(); | |||||
updatewords(); | |||||
} | |||||
function uppercase() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
t.value = t.value.toUpperCase(); | |||||
} | |||||
function lowercase() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
t.value = t.value.toLowerCase(); | |||||
} | |||||
function capitalizewords() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
t.value = (t.value + '').replace(/^(.)|\s(.)/g, function ($1) { | |||||
return $1.toUpperCase(); }); | |||||
} | |||||
function capitalizesentences() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
var tarray = t.value.split("."); | |||||
var tstr = ''; | |||||
for(i=0; i<tarray.length; i++) | |||||
{ | |||||
tarray[i] = ltrim(tarray[i], ' '); | |||||
tstr = tstr + tarray[i].substring(0,1).toUpperCase() + tarray[i].slice(1).toLowerCase(); | |||||
if(i < (tarray.length - 1))tstr = tstr + '. '; | |||||
} | |||||
t.value = tstr; | |||||
tarray = t.value.split("?"); | |||||
tstr = ''; | |||||
for(i=0; i<tarray.length; i++) | |||||
{ | |||||
tarray[i] = ltrim(tarray[i], ' '); | |||||
tstr = tstr + tarray[i].substring(0,1).toUpperCase() + tarray[i].slice(1); | |||||
if(i < (tarray.length - 1))tstr = tstr + '? '; | |||||
} | |||||
t.value = tstr; | |||||
tarray = t.value.split("!"); | |||||
tstr = ''; | |||||
for(i=0; i<tarray.length; i++) | |||||
{ | |||||
tarray[i] = ltrim(tarray[i], ' '); | |||||
tstr = tstr + tarray[i].substring(0,1).toUpperCase() + tarray[i].slice(1); | |||||
if(i < (tarray.length - 1))tstr = tstr + '! '; | |||||
} | |||||
t.value = tstr; | |||||
} | |||||
function replacetext() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
var from = document.getElementById("from"); | |||||
var to = document.getElementById("to"); | |||||
var cs = document.getElementById("cs"); | |||||
var scope; | |||||
var ff = from.value.replace("%N", "\n"); | |||||
var tt = to.value.replace("%N", "\n"); | |||||
if(cs.checked)scope = 'g'; | |||||
else scope = 'gi'; | |||||
var temp = t.value; | |||||
temp = temp.replace(new RegExp(ff, scope), tt); | |||||
t.value = temp; | |||||
from.value = ''; | |||||
to.value = ''; | |||||
updatecounts(); | |||||
} | |||||
function addtext() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
var a = document.getElementById("add"); | |||||
var p = document.getElementById("addpos"); | |||||
var temp = t.value; | |||||
var tstr = ''; | |||||
var tarray = t.value.split("\n"); | |||||
if(p.value == 'start') | |||||
{ | |||||
for(i=0; i<tarray.length; i++) | |||||
{ | |||||
insert = a.value.replace("%L", i+1); | |||||
insert = insert.replace("%N", "\n"); | |||||
tstr = tstr+insert+tarray[i]; | |||||
if(i < (tarray.length - 1))tstr = tstr+"\n"; | |||||
} | |||||
t.value = tstr; | |||||
} | |||||
else | |||||
{ | |||||
for(i=0; i<tarray.length; i++) | |||||
{ | |||||
insert = a.value.replace("%L", i+1); | |||||
insert = insert.replace("%N", "\n"); | |||||
tstr = tstr+tarray[i]+insert; | |||||
if(i < (tarray.length - 1))tstr = tstr+"\n"; | |||||
} | |||||
t.value = tstr; | |||||
} | |||||
a.value = ''; | |||||
updatecounts(); | |||||
} | |||||
function ltrim(str, chars) | |||||
{ | |||||
chars = chars || "\\s"; | |||||
return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); | |||||
} | |||||
function rtrim(str, chars) | |||||
{ | |||||
chars = chars || "\\s"; | |||||
return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); | |||||
} | |||||
function trimtext() | |||||
{ | |||||
var t = document.getElementById("thetext"); | |||||
var n = document.getElementById("trimnumber"); | |||||
var p = document.getElementById("trimpos"); | |||||
var tarray = t.value.split("\n"); | |||||
var i; | |||||
var tstr = ''; | |||||
if(p.value == 'first') | |||||
{ | |||||
for(i=0; i<tarray.length; i++)tstr = tstr+tarray[i].substr(n.value)+"\n"; | |||||
tstr = rtrim(tstr); | |||||
} | |||||
else | |||||
{ | |||||
for(i=0; i<tarray.length; i++) | |||||
{ | |||||
tlen = tarray[i].length; | |||||
tpos = tlen - n.value; | |||||
tstr = tstr+tarray[i].substr(0, tpos)+"\n"; | |||||
} | |||||
tstr = rtrim(tstr); | |||||
} | |||||
t.value = tstr; | |||||
updatecounts(); | |||||
} |