Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод случайных русских символов (https://javascript.ru/forum/misc/67594-vyvod-sluchajjnykh-russkikh-simvolov.html)

Tearun 26.02.2017 14:59

Вывод случайных русских символов
 
Всем доброго времени суток! Только начинаю осваивать js, сейчас пробую написать код, который бы выдавал случайные буквы в имеющиеся ячейки. С английским алфавитом это получилось, а вот как сделать с русским, - не понимаю. Подскажите, пожалуйста. И желательно не ссылками, тк я уже часа 2 по ним хожу, но понимания особо не прибавилось. Код ниже:

function starter(){
for(i=0;i<=8;i++){
var random=Math.random().toString(12).replace(/[^a-z]+/g, '').substr(0, 1).toUpperCase();
writeValue(i,random);
saver.push(random);
}
setTimeout(function(){
for(i=0;i<=8;i++){
writeValue(i,"&nbsp;");
}
}, 200);
}

рони 26.02.2017 15:14

Tearun,
составить строку из русских букв и выбирать случайно

ruslan_mart 26.02.2017 15:20

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function getRandomRUHash(max) {
  var i, result = '';
  
  for(i = 0; i < max; i++) {
  	result += String.fromCharCode(getRandomInt(1072, 1103));
  }
  
  return result.toUpperCase();
}


alert( getRandomRUHash(10) );

рони 26.02.2017 15:34

:)
<script>
  for(i=0;i<80;i++){
 var random= "&#"+(1040 + Math.random()*32|0)+";";
document.write(random)
 }
</script>

Paguo-86PK 26.02.2017 16:00

Нa самом деле, на прошлой неделе ответ был дан
<style>
#start,#finish {
	color	: grey;
}
</style>
<script>
String.prototype.random = function(n) {
	var	c = "", s = "", z = 999;
	var	re = new RegExp(this);
	while(-- z && (!c.match(re) || (n -- && (s += c))))
		c = String.fromCharCode(Math.random() * 4096 % 4096);
	return	s;
}
String.prototype.module = function() {
	var	a = [],
		i = 0, j = 0,
		c,
		l = this.length,
		m = -1, k = -1;
	while(i < l) {
		for(j = 0; j < 128; a[j ++] = true);
		a[this.charCodeAt(j = i)] = false;
		while(a[this.charCodeAt(j + 1)])
			a[this.charCodeAt(++ j)] = false;
		if(m < j - i)
			k = i,
			m = j - i;
		++ i;
	}
	return	this.substr(k, m + 1);
}
//
function Print() {
	var	str = document.getElementById("cond").value.random(document.getElementById("wide").value);
	var	s = str.module();
	var	i = str.indexOf(s);
	document.getElementById("start").textContent = str.substring(0, i);
	document.getElementById("key").textContent = s;
	document.getElementById("finish").textContent = str.substring(i + s.length);
}
</script>
<body>
Ваш критерий
<input id=cond type=text value='[А-Яа-аЁё]' placeholder='Регулярное выражение' onChange='Print()' />
для
<input id=wide type=number min=1 max=96 value=48 onChange='Print()' /><a href='#' onmousemove='Print()'>Генерировать</a><br />
<span id=start></span><u id=key></u><span id=finish></span>
</body>


Часовой пояс GMT +3, время: 17:36.