quote:
It is having some problems with 3 letter words, I'll figure it out, eventually.
The answer is really obvisious.... But well, i'll help you, here it is.
code:
function talker(input) {
// Unreader written by Improfane 2005
// Please do not remove this message
// original concept: http://216.239.59.104/search?q=cache:R79FQj60fnkJ...t.davis/Cmabrigde/ (Google Cache)
var words = /[a-z]+/gi
// regular expression to grab all words
input_length = input.length ; // length of entire string
var matches = input.match(words) ; // list of all words
for (cur_word=0; cur_word < matches.length ; cur_word++) { //cycle through each word
word = matches[cur_word] // current word
cur_word_length = word.length ; // current word length
if(cur_word_length > 3) {
cur_word_middle = word.substring(1,cur_word_length-1) ; // the middle part of the word, from the 2nd letter to the 2nd to last letter
new_middle = scramble(cur_word_middle) ; // scrambles the middle word
input = input.replace(cur_word_middle, new_middle ) ; // makes change to original string
}
}
return input
}
function scramble(input) { // scrambles any input
// written by Improfane 2005
var new_word = "" ;
for (cur_letter=0 ; cur_letter = input.length ; cur_letter++) { // cycle through each letter
random_letter = input.charAt(ranNum(0,input.length)) // get random letter from the possible characters available
input = input.replace(random_letter,"") ; // remove the used letter from the possible characters available
new_word += random_letter ; // adds the random letter to the new string
}
return new_word ; // returns the scrambled word
}
function ranNum(nFrom,nTo) {
return Math.floor(nFrom + (nTo-nFrom + 1) * Math.random()) ;
// returns a random number
}