2013-11-09 3 views
-4

В настоящее время я пытаюсь написать «веб-приложение», в котором есть простая текстовая область внутри, в которой я хочу, чтобы буквы написанного текста указывались.Как считать буквы в тексте с помощью Javascript?

Например, если я пишу:

'' Сколько вам лет? Мне 19 лет »

Мне нужен код, чтобы рассказать мне, сколько« A »и« Y »и« D »(и все буквы алфавита от 0-26) используются в этом предложении, когда я нажимаю кнопку на странице HTML/CSS.

Не могли бы вы рассказать мне, что я должен записать в мой .JS-файл и что я должен написать в свой .HTML-файл, чтобы сделать это одним нажатием кнопки, когда что-то написано в?

Я надеюсь, что мои объяснения были достаточно подробными. Благодаря!

Edit (я очень извиняюсь за проблемы попаду) - То, что я сделал до сих пор выглядит следующим образом:

HTML:

<link rel="stylesheet" type="text/css" href="theme.css"> 
<meta charset="utf-8"> 

<script src="test.js" type="text/javascript"></script> 

<div class='header'> 
Al.Fa.Be 
</div> 

<div class='yaz'> 
<textarea></textarea> 

</div> 

<div class='description'> 
<a href='http://www.google.com'>Ara</a> 
</div> 

<div class='description2'> 
<input id="clickMe" type="button" value="Hesapla" onclick="doFunction();" /> 
</div> 

CSS:

body{ 
background:white; 
} 

selection{ 
background:#CCC; 
} 

#clickMe{ 
background:#CCC; 
border:1px solid #333; 

} 

.header{ 
font-size:70px; 
font-weight:bold; 
font-family:Arial; 
color:#333; 
margin-left:580px; 
padding-top:200px; 
} 

textarea{ 
width:1210px; 
height:40px; 
color:black; 
margin-top:20px; 
margin-left:100px; 
padding-left:10px; 
padding-top:10px; 
font-size:18px; 
font-family:Arial; 
} 

.description{ 
background:#f2f2f2; 
padding:6px; 
width:50px; 
text-align:center; 
border:1px solid #ddd; 
font-family:Arial; 
margin-left:620px; 
margin-top:20px; 
font-size:14px; 
} 

.description a{ 
color:#555; 
text-decoration:none; 
} 

.description2{ 
background:#f2f2f2; 
padding:6px; 
width:60px; 
text-align:center; 
border:1px solid #ddd; 
font-family:Arial; 
margin-left:750px; 
margin-top:-30px; 
font-size:14px; 
} 

.description2 a{ 
color:#555; 
text-decoration:none; 
} 

.yaz{ 
color:white; 
} 

Javascript:

// Input name. Count number of alphabets a-z 
class program                                                          
{ 
    public static void main(String[] args) 
    { 
        String name = args[0]; 
        int count[] = new int[29]; 
        int i,p; 
        int n = name.length(); 
        name = name.toUpperCase(); 
        char c; 
        for (i=0; i<29; i++) 
        { 
            count[i] = 0;   
        } 
        for (i=0; i<n; i++) 
        { 
            c = name.charAt(i); 
            p = (int) c; 
            count[p-65]++; 
        } 
        for (i=0; i<29 ; i++) 
        { 
            if (count[i] >0) 
            { 
                System.out.println((char)(i+65) + " occurs " + count[i] + " times"); 
            } 
        } 
    } 
} 

PS: Пожалуйста, помните, что я действительно сосать на этом, и мне нужно знать, как это сделать определенным образом.

+1

Привет и добро пожаловать в StackOverflow. Вы должны знать, что этот сайт не является местом, где один размещает заказ, а остальные члены служат ему готовым кодом; заявленная цель заключается в том, чтобы помочь другим программистам решить проблемы, с которыми они сталкиваются. Если вы что-то пробовали, и это не работает, пожалуйста, покажите нам и задайте конкретный вопрос; текущая форма вопроса («скажи мне, что я должна писать») не соответствует теме. – Jon

+1

-1 для многокомпонентности. Первая часть - хороший вопрос, но все просто доказывает, что вам нужно больше, чем просто ответ SO. –

+0

Что касается первой части, просто подсказка: я бы, вероятно, использовал regex '/ [a-z]/gi'. –

ответ

0

Отметьте эту статью: http://davidwalsh.name/javascript-unique-letters-string. Это именно то, что вы ищете.

Edit: HTML:

<link rel="stylesheet" type="text/css" href="theme.css"> 
<meta charset="utf-8"> 

<script src="test.js" type="text/javascript"></script> 

<textarea rows="5" cols="10" id="str" value="Insert the string" /> 
<input type="button" value="Submit" id="button" /> 

JS:

document.getElementById('button').onclick = function() { 
/* returns the size/length of an object */ 
Object.size = function(obj) { 
    var size = 0; 
    for(key in obj) { 
     if(obj.hasOwnProperty(key)) size++; 
    } 
    return size; 
} 

//initial vars 
var str = document.getElementById('str').val; 
var letters = new Object; 

//loop, figure it out 
for(x = 0, length = str.length; x < length; x++) { 
    var l = str.charAt(x) 
    letters[l] = (isNaN(letters[l]) ? 1 : letters[l] + 1); 
} 

//output count! 
for(key in letters) { 
    console.log(key + ' :: ' + letters[key]); 
} 
console.log(Object.size(letters)); 

} 

PS: Ваш "JavaScript" не похож на JavaScript ... Похоже, Java ...

+0

Это действительно то, что я искал. Однако, как я могу объединить это с моими кодами HTML/CSS, которые я написал выше? Понятия не имею. Я хочу нажать кнопку, и это произойдет, когда что-то написано в текстовой области моей страницы. Вы можете это объяснить? Это было бы круто! – Doguhanca

+0

@ Doguhanca Okey, там у вас есть. – aksu

0

Попробуйте следующее:

var str = "How old are you? I am 19 years old"; 
str = str.toLowerCase();// search is case sensitive 
var counta = str.match(/a/g); 
var countd = str.match(/d/g); 
var county = str.match(/y/g); 
alert("a:"+counta.length+" d:"+countd.length+" y:"+county.length); 

Fiddle here:

+0

Это довольно близко к тому, что я просил. Однако: 1. Как это сделать в текстовой области? 2. Как это сделать в HTML-файле? Я хотел бы скопировать и вставить это в файл .JS и что мне делать в файле .HTML? – Doguhanca

+1

@Doguhanca Я здесь не для того, чтобы написать вам все бесплатно .. приложить некоторые усилия или нанять кого-то, кого я могу вам объяснить, ратифицировать ваш код, но НЕ писать все для вас – Hiral

1

Так я и сделал бы это.

var count = {}; 
var msg = "Your message"; 

for(var i = 0; i < msg.length; i++) { 
    var c = msg[i]; 
    c = c.toLowerCase(); 
    if(typeof(count[c]) == "undefined") { 
     count[c]=1; 
    } 
    else { 
     count[c]++; 
    } 
} 

Если вы хотите, вы можете проверить только буквы, как это:

if('a'.charCodeAt(0) <= c <= 'z'.charCodeAt(0)) 
    //This is a small letter 
Смежные вопросы