2015-02-25 2 views
-1

строк:Regex - Мне нужно разбить строку после первого номера

-45 
89 
-ertu567 
tree5678 

мне нужны те, разделить так:

-4  5 
8  9 
-ertu5 67 
tree5 678 

Everytime я пытаюсь использовать \d, он видит - в виде цифры.

+1

@tzunghaor, пожалуйста, не путайте других, эти две вещи здесь синонимы. –

+0

@ Ja͢ck Это не так. [0-9] просто 0-9, тогда как \ d может содержать любой номер юникода. – oopbase

+0

@ Forlan07 Не в JavaScript. В JS '\ d' является сокращением для' [0-9] '. –

ответ

2

Это работает со мной

/^(\D*\d)(.*)$/ 

Я сделал скрипку для просмотра и просмотра

https://regex101.com/r/xW4aE8/1

+0

Это он, вы выиграли !!! Спасибо тонну gijswijs – Jack

1

Вы можете получить индекс матча регулярного выражения, и разделить строку после этого индекса:

function splitAtDigit(str) { 
 
    var m = /\d/.exec(str); 
 
    return m ? [str.substr(0, m.index + 1), str.substr(m.index + 1)] : [str]; 
 
} 
 

 
document.write(JSON.stringify(splitAtDigit("-ertu567")));

+0

Это слишком сложно, есть ли более простой способ сделать это? – Jack

+0

Да, ты прав. Решение @gijswijs проще. –

Смежные вопросы