Quiero recortar los caracteres de la cadena. mi cadena de salida es "Val: 980". Necesito recortar las primeras 4 letras para obtener 980 solamente.

<script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope, $http) {
        $http.get('https://example.com', {
            headers: {
                'Authorization': 'Basic fakjle=='
            }
        }).then(function(response) {
            $scope.names = response.data;
            $scope.decodedFrame = atob($scope.names.dataFrame) //Val:980               });
        });
    });
</script>

<div ng-app="myApp" ng-controller="myCtrl">
    <table>
        <tr>
            <td> {{decodedFrame} </td>
        </tr>
    </table>
</div>
1
Swapna 17 feb. 2017 a las 13:26

6 respuestas

La mejor respuesta

Tratar:

var value = $scope.decodedFrame.split(":")[1]; // actually safer to use split
value = (parseFloat(value) * 0.23) / 162;

Y eche un vistazo a (para más métodos de cadena): https://www.w3schools.com/js/js_string_methods.asp

1
Saleh 17 feb. 2017 a las 10:45

En realidad tienes muchas formas. Uno de ellos:

$scope.decodedFrame = atob($scope.names.dataFrame);
$scope.decodedFrame = $scope.decodedFrame.substring(4);

Pero si tiene una longitud dinámica de nombre de estos parámetros ("Val", "Valor", "V", ...) también puede intentar algo como esto:

var tempValue = atob($scope.names.dataFrame);
tempValue = tempValue.split(":");
tempValue = tempValue[1] || '';
$scope.decodedFrame = tempValue.trim();
1
Vitaliy Andrusishyn 17 feb. 2017 a las 10:38

La gente respondió sobre cómo recortarlo, pero también recortarlo directamente en el bloque .then, para que tenga un marcado claro y ordenado.

El mejor consejo será crear una función personalizada que recorte los primeros 4 caracteres y aplique esa función para todos sus resultados en la devolución de llamada exitosa .then.

1
flashjpr 17 feb. 2017 a las 10:37

Puede usar el método de subcadena para obtener los caracteres como este

$scope.decodedFrame.substring(4);

Pero si necesita obtener todos los caracteres después del símbolo :, use el método split

$scope.decodedFrame.split(':')[1];

1
Sachila Ranawaka 17 feb. 2017 a las 10:36

Si está seguro de que siempre obtendrá "Val:" junto con el número deseado (980), puede usar la división de la siguiente manera:

$scope.decodedFrame = $scope.decodedFrame.split('Val:')[1];
1
Nikhilesh K V 17 feb. 2017 a las 10:34

$ scope.decodedFrame.substring (4);

1
BX.T 17 feb. 2017 a las 10:33