@@ -106,26 +106,29 @@ export default class GeoPointEditor extends React.Component {
106106      let  value  =  e . target . value ; 
107107
108108      if  ( ! validateNumeric ( value ) )  { 
109-         var  values  =  value . split ( ',' ) ; 
110- 
111-         if  ( values . length  ==  2 )  { 
112-           values  =  values . map ( val  =>  val . trim ( ) ) ; 
113- 
114-           if  ( values [ 0 ] . length  >  0  &&  validateNumeric ( values [ 0 ] ) )  { 
115- 
116-             if  ( values [ 1 ] . length  <=  0  ||  ! validateNumeric ( values [ 1 ] ) )  { 
117-               this . setState ( {  latitude : values [ 0 ]  } ) ; 
118-               this . longitudeRef . current . focus ( ) ; 
119-               this . longitudeRef . current . setSelectionRange ( 0 ,  String ( this . state . longitude ) . length ) ; 
120-               return ; 
121-             } 
122- 
123-             if  ( validateNumeric ( values [ 1 ] ) )  { 
124-               this . setState ( {  latitude : values [ 0 ]  } ) ; 
125-               this . setState ( {  longitude : values [ 1 ]  } ) ; 
126-               this . longitudeRef . current . focus ( ) ; 
127-               return ; 
128-             } 
109+         const  regex  =  / [ [ ( " '   ] ? (?< x > [ 0 - 9 . ] + ) [ " '   ] ? , [ " '   ] ? (?< y > [ 0 - 9 . ] + ) [ " '   ) \] ] ? / ; 
110+         const  match  =  regex . exec ( value ) ; 
111+ 
112+         if  ( ! match )  { 
113+           return  null ; 
114+         } 
115+ 
116+         const  values  =  [ match . groups . x ,  match . groups . y ] ; 
117+ 
118+         if  ( values [ 0 ] . length  >  0  &&  validateNumeric ( values [ 0 ] ) )  { 
119+ 
120+           if  ( values [ 1 ] . length  <=  0  ||  ! validateNumeric ( values [ 1 ] ) )  { 
121+             this . setState ( {  latitude : values [ 0 ]  } ) ; 
122+             this . longitudeRef . current . focus ( ) ; 
123+             this . longitudeRef . current . setSelectionRange ( 0 ,  String ( this . state . longitude ) . length ) ; 
124+             return ; 
125+           } 
126+ 
127+           if  ( validateNumeric ( values [ 1 ] ) )  { 
128+             this . setState ( {  latitude : values [ 0 ]  } ) ; 
129+             this . setState ( {  longitude : values [ 1 ]  } ) ; 
130+             this . longitudeRef . current . focus ( ) ; 
131+             return ; 
129132          } 
130133        } 
131134      } 
0 commit comments