Tengo múltiples tipos de cadenas en Arraylist. (Del mismo patrón similar)
var arrStr = [ 'Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00 PROF 10', 'Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00PROF 10' , 'Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00Profit 10', 'Slab3 - Slab 1.00 NAV & Slab14- Slab 10.00 PROF 12', 'Slab3 - Slab 1.00 NAV & Slab14- Slab 18.00PROF 12', 'Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00Profit 12', 'Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00 Profit 12' ]Aquí necesito obtener datos antes y después del Prof. For Ex:
let txt1 = 'Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00 PROF 10' // i need the 20.00 and 10 ( 20.00 PROF 10 ) // but some time the pattern is coming with different format. // As like **20.00PROF 10** **20.00Profit 10** **10.00 PROF 12** **18.00PROF 12** **20.00Profit 12** **20.00 Profit 12**No tengo idea de tomar los datos de esta cadena. Porfavor ayudame a resolver este problema. Los códigos de solución son bienvenidos.
Pruebe una expresión regular.
arrStr.forEach((s) => console.writeLine(s.toLowerCase().match(/(\d+\.\d{2})prof\S*\s*(\d+)/)));var randomString = "Slab3 - Slab 1.00 NAV & Slab14- Slab 20.00 PROF 10"; // you can use above any stringExplota tu cadena con espacio, almacena la matriz en cualquier variable:
var randomStringArray = randomString.split(" ");En su cadena dada, hay algo común que es su valor requerido. Está al final de la cadena para que podamos obtener ganancias fácilmente. Para losa, tenemos que verificar si el penúltimo es el valor o el tercero desde el último es el valor numérico. Entonces usamos el ejemplo de operador ternario que se muestra a continuación.
Esta es la forma de usar un ternario y encontrar la losa:
var slab = (parseFloat(randomStringArray[randomStringArray.length - 2])) ? parseFloat(randomStringArray[randomStringArray.length - 2]) : parseFloat(randomStringArray[randomStringArray.length - 3]);Esta es la forma de obtener el último valor como beneficio:
var profit = parseFloat(randomStringArray[randomStringArray.length - 1]);