2014-02-20 7 views
-2

나는 자동차 번호판 인 문자열을 가지고 있습니다. 하지만 디스플레이 목적을 위해이 문자열에서 네 번째 문자 다음에 공백을 추가 할 대상은 무엇입니까? 데이터는 데이터 서비스에서 가져온 것이므로 프론트 엔드에서이 작업을 수행해야합니다.4 번째 문자 뒤에 공백을 추가하는 정규식 자바 스크립트

예 : AF13BXP이 AF13에 BXP

아래의 코드가 작동하지 않는 것 :이 작업을 수행하는

var $regtext = $('#regNumber'); 
if ($regtext.length > 0) 
{ 
    var regtext = $regtext.text(), 
    newRegtext = regtext.replace(/[\n\s]/g, ''); 
    console.log(newRegtext); 
} 
+0

게시 된 코드가 귀하의 질문과 어떤 관련이 있습니까? BTW, 작동 여부는 상당히 모호합니다. –

+1

은 훌륭하게 들립니다. 이제 문제가 무엇인지 말해주십시오. –

+0

'newRegtext = regtext.replace (/ (^. {4}) /, "$ 1")' – pawel

답변

3

간단하고 명확한 방법을, 정규식하지 않고 :

var $regtext = $('#regNumber'); 

if ($regtext.length > 0) 
{ 
    var regtext = $regtext.text(), 
    newRegtext = regtext.substr(0, 4) + " " + regtext.substr(4); 
    console.log(newRegtext); 
} 

또한 꽤 빨리도있다 : 351ms에서 10,000 번 실행됩니다. 분할 및 결합하는 것보다 빠릅니다. 웹 서비스에서 많은 양의 데이터를 처리하는 것이 좋습니다.

+0

예. http://jsperf.com/space-at-4 – pawel

+0

니스! 밝기 속도 ... –

+0

고마워요 Zougen Moriver! 내가 필요한 것! – user1016277

0

정규식을 사용하려면 다음 작업을 수행해야합니다.

newRegtext = regtext.replace 당신은 다음과 같은 jQuery를 사용할 수 있습니다

0

(/^({4})/'$ 1'.) : Demo

$('.test').keyup(function() { 
    var foo = $(this).val().split(" ").join(""); 
    if (foo.length > 0) { 
    foo = foo.match(new RegExp('.{1,4}', 'g')).join(" "); 
    } 
    $(this).val(foo); 
}); 
0

것은이 코드

$(document).ready(function(e) { 
    var $regtext = $('#regNumber'); 
    var $regtext = $regtext.text(); 
    if ($regtext.length > 0) 
    { 

regCheck = /^([A-Z1-9a-z]{1,4})([A-Z1-9a-z]*)$/; 
regtext = regCheck.test($regtext); 
    newRegtext = $regtext.replace(regCheck,"$1 $2"); 
     alert(newRegtext); 

    } 
    }); 
에게 시도
관련 문제