私の人生にとっては、これがなぜ機能しないのか理解できません。Javascript:str.indexOfは£記号で動作しません
ユーザーは、私がペニーに変換している文字列を入力します(1ポンド= 100ペニー)。文字列に最初の文字として£記号が含まれている場合は、変換に100を掛けることがわかります。
私の問題は、最初の文字が£かどうかを調べるためにif文を使用していることです。私はindexOf()
を使用していますが、文字£を捕まえません。私はconsole.log(userInput.indexOf("£"));
を使用して返されるものを確認し、0
を記録します。私が知る限り、これはif文では機能しません。
ここに私のコードです:
HTML
<html ng-app="main">
<head>
<meta charset="ISO-8859-1">
<title></title>
<script src ="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body ng-controller="mainController">
<input type="submit" ng-click="trim()">
<script type="text/javascript" src="main.js"></script>
</body>
</html>
角度
$scope.trim = function(){
var userInput = "£1234";
if(userInput.indexOf("£") == 0){
userInput = userInput.substr(1);
userInput *= 100;
}
}
私は01のため£123
を使用していますと入力し、入力するとyou have entered an invalid character
と表示されます。すべての助けに感謝します。
'はconsole.log(userInput.indexOf( "£"))' 'あなたは£は' *最初の*文字であるかどうかを確認するためにチェックしている –
のに役立ちます。その前に空白があるとどうなりますか? –
上記のコードブロックを[mcve]にする必要があります(これは簡単に '<>'ツールバーボタンを使用し、必要なライブラリを追加するなど)。結論:文字列に£がある場合、 'indexOf' **はそれを見つけます**。 –