2013-09-22 2 views
2

저는 이전에 JavaScript (VB.NET)에 익숙하지 않았으며 언어를 이해하지 못했습니다. 자바 스크립트에서 전달되는 문자열에 어떻게 든 유니 코드 이스케이프 문자가 포함되어있는 문제가 있습니다 (0x5206, 왼쪽에서 오른쪽으로 표시). 유니 코드 문자의 존재를 확인하고 그것을 제거하는 벙어리 루프를 사용하여이 작업을 수행 할 수 있지만 .replace (regex)를 사용하여이 작업을 수행 할 수 있어야합니다. 그러나 몇 시간 후에 나는 그것을 (처음 정규식을하는) 도움이 필요해. 코드에서 문자열에서 javascript unicode 문자 8206을 벗기기

// Convert from JS date format to dotnet ticks 
function getNetDateTime(JSDate, dateortime) { 
    var convStr = JSDate.toLocaleString(); 
    var tryRegEx = convStr.replace(/\u5206/g, ""); 
    var tempStr = "1/01/2000 10:00:00 AM"; 
    var stripStr = ""; 
    for (var i = 0; i < convStr.length; i++) { 
     if (convStr.charCodeAt(i).toString() != "8206") stripStr = stripStr + convStr.charAt(i); 
    } 
    alert(new Date(tempStr).toString()); 
    alert(new Date(tryRegEx).toString()); 
    alert(new Date(stripStr).toString()) 
    var datetime = ((new Date(stripStr).valueOf() + unixEpoc) * pcTicks).toString(); 
    return datetime; 
} 

위, tempStr 및 stripStr는 정확한 날짜가 아닌 tryRegEx을 (유니 코드 이스케이프 문자가 밖으로 제거되지 않는 잘못된 날짜를 가져옵니다) 제공합니다. 나는 정규 표현식이 정확하다는 것을 확신한다. 왜 정규 표현식이 나를 위해 작동하지 않는지 (그래서 나는 루프를 빠져 나갈 수있다).

모든 포인터 주셔서 감사합니다. 나는 여기에 기본적인 것을 간과하고있을 것이라고 확신한다. :-)

답변

3

5206 또는 8206? 하나 선택하십시오 :) 8206 인 경우 \u200E (8206 16 진수)을 원합니다. 그것은 5206 당신이 원하는 경우 \u1456

+0

아 - 내가보기 엔 유니 코드 문자를 사용하지 않았고 그들은 2 개의 분리 된 바이트 (82 + 06 dec 또는 52 + 06 16 진수) 였을 때 (200E hex = 8206 dec). 그게 내가 놓친거야. 고마워! – deandob