Estoy construyendo un componente que acepta una entrada de notación de puntos. Quiero validar la entrada y cuando me detuve a pensar en "qué es una notación de puntos válida", pensé que esta sería una forma simple de hacerlo, pero casi parece demasiado simple, así que ahora me pregunto si me estoy perdiendo algo. :
function isValidDotNotation(content: string) { try { content.split(".") return true } catch (exception) { return false } }Asi que:
example.widgets[0].name , widgets[0] sigue siendo una cadena válida cuando .split()"test".split(".") todavía funciona)Entonces, cuando disparamos la división, siempre que no lancemos una excepción, la cadena dada debe ser una notación de punto válida. Puede o no conducirlo a algo dentro de la estructura json, pero en lo que respecta a un valor válido, debería ser bueno, ¿verdad?
¿Me estoy perdiendo algún matiz aquí? He visto ejemplos de personas que recorren la estructura y esas cosas, pero parece una exageración validar a menos que me esté perdiendo algo.
string.split nunca arrojará una excepción cuando se pasa una cadena. Por lo tanto, a través de estas reglas, cualquier cadena es una notación de puntos válida. En ese caso, solo necesita verificar si algo es una cadena, lo que puede hacer así:
typeof content === 'string'Te estás perdiendo algo. Su código original no funcionará con la entrada:
content1 = "example.widgets[.0].name" content2 = "example.widgets[0].name."