Restore CASE
by Super_baloo8
HTML
<div class="before">
<p>Before</p>
<pre id="before">
un messaGE dE test.alors testons
(test)TEST
TEST(test)TEST
TEST (test) TEST
TEST-TEST
TEST- TEST
TEST - TEST
TEST.TEST
TEST. TEST
TEST . TEST
test.test
test. test
test . test
TEST!TEST
TEST! TEST
TEST ! TEST
test!test
test! test
test ! test
TEST?TEST
TEST? TEST
TEST ? TEST
test?test
test? test
test ? test
1)test
1) test
1 ) test
1)TEST
1) TEST
1 ) TEST
2-test
2- test
2 - test
2-TEST
2- TEST
2 - TEST
a)test
a) test
a ) test
A)TEST
A) TEST
A ) TEST
b-test
b- test
b - test
B-TEST
B- TEST
B - TEST
</pre>
</div>
<div class="after">
<p>After</p>
<pre id="after">
</pre>
</div>
CSS
div {
color: green;
margin: 0 2%;
}
div p{
font-weight: bold;
text-align: center;
margin: 0;
padding: 0;
}
.before {
width: 44%;
color: red;
float: left;
}
.after{
margin-left: 52%;
}
JavaScript
var texte = $('#before').text();
function restoreCase(string) {
var res = "",
upperCase = true;
for (var i = 0; i < string.length; ++i) {
var c = string.charAt(i);
upperCase = upperCase && !/^[-) ?]/.test(string.charAt(i+1)+ string.charAt(i+2));
res += upperCase ? c.toUpperCase() : c.toLowerCase();
var upperCaseChar = /[-!)\n.?]/.test(c);
if (upperCaseChar || !/\s/.test(c)) {
upperCase = upperCaseChar;
}
}
res = res.replace(/ ?\((.*)\) ?[A-Z]{1}/gi, function(a) { return a.toLowerCase(); });
return res;
}
$('#after').append(restoreCase(texte));