2016-10-22 72 views
1

我正在製作一個烏克蘭語拼音鍵盤。人們輸入英文,這些字母自動變爲相應的烏克蘭字符。但是,當我使用它時,我有時需要用英語書寫自己的筆記(它們與代碼中的註釋一樣用於其他人和我自己)。檢查textarea中的打開標記

我想用標記(「<」)表示評論的開始。我如何檢查當前是否有打開的標籤?

我想是這樣的:

if (number of "<" is greater than ">") {//if a tag has been opened and not closed 
//disable translation, type in English 
} 

我明白不過了如何禁用譯本,我不能確定有關 「如果」

我如何檢查是否

number of "<" is greater than ">" 

謝謝!

回答

1

可以使用.match計數的特定字符數()

在你的情況

var string = "<<<>>"; 

if ((string.match(/</g)||[]).length > (string.match(/>/g)||[]).length) { 
    console.log("More"); 
} 
else { 
    console.log("Less or equal"); 
} 
+0

非常明確答案 - 感謝! – Zackh105

1

他們每個人的計算是像下面

var countGreaterThan = (temp1.match(/</g) || []).length; 
var countLessThan = (temp1.match(/</g) || []).length; 

和temp是textarea的

1

根據數據所在的位置的字符串值,你可以這樣做:

var data = document.querySelector('#data-container').innerHTML; 
var isOpenTagPresent = getSymbolCount('<') > getSymbolCount('<'); 

if(isOpenTagPresent) { 
    //execute your logic 
} 

function getSymbolCount(symbol) { 
    var count = 0; 
    for(var i = 0; i < data.length; ++i) { 
    if(data[i] === symbol) { 
     count++; 
    } 
    } 
    return count; 
} 

希望這有助於,歡呼!