Ich kann nicht für das Leben von mir herauszufinden, warum das nicht funktioniert.Javascript: str.indexOf arbeitet nicht mit £ Symbol
Der Benutzer gibt eine Zeichenfolge ein, die ich in Pennies umwandele (1 Pfund = 100 Pennies). Wenn die Zeichenfolge das £ -Symbol als erstes Zeichen enthält, weiß ich, dass es für die Konvertierung mit 100 multipliziert wird.
Mein Problem ist, dass ich eine if-Anweisung verwende, um zu sehen, ob das erste Zeichen £ ist. Ich benutze indexOf()
, aber es fängt nicht das Zeichen £. Ich habe sogar console.log(userInput.indexOf("£"));
verwendet, um zu sehen, was zurückgegeben wird, und es protokolliert 0
. Soweit ich das beurteilen kann, funktioniert das nur in der if-Anweisung nicht.
Hier ist mein Code:
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>
Angular
$scope.trim = function(){
var userInput = "£1234";
if(userInput.indexOf("£") == 0){
userInput = userInput.substr(1);
userInput *= 100;
}
}
I £123
für 01 verwendet haben, und wenn ich es eingebe, wird you have entered an invalid character
angezeigt. Alle Hilfe wird geschätzt.
'console.log (userInput.indexOf ("£"))' wird –
helfen Sie überprüfen, ob '£' das ist * erste * Charakter. Was ist, wenn davor Whitespaces stehen? –
Sie müssen die obigen Codebausteine in ein [mcve] umwandeln (was einfach mit der '<>' - Symbolleistenschaltfläche und dem Hinzufügen notwendiger Bibliotheken usw. durchgeführt werden kann). Bottom line: Wenn in der Zeichenkette ein £ steht, findet 'indexOf' ** es. –