我正在嘗試創建一個簡單的程序,它允許用戶輸入數字或單詞,並按字母順序(如果是文字)或數字(如果是數字)進行排序。爲此,我需要一個可以區分數字和單詞的輸入,例如10,-10,0.5和-0.5將被評估爲數字,其他所有內容都將被視爲單詞。使用正則表達式區分輸入中的數字和單詞
到目前爲止,我想出了這一點:
function recordUserInput() {
userInput = $('input').val();
if (userInput.charAt(0).match(/^(-)?[0-9]/)) {
console.log('number', userInput);
}
else {
console.log('text', userInput);
}
}
然而,負數仍在評估爲文本。
我在做什麼錯?
我真的認爲約瑟的回答是最好的辦法,而不是正則表達式。然而,你的正則表達式不起作用的原因是你對你的正則表達式使用了'charAt(0).match'。在負數的情況下,'charAt(0)'是'-',所以它不會匹配'^( - )?[0-9]'。你應該簡單地使用'userInput.match' – Aserre