2011-09-28 78 views
0

我使用RegExp。這段代碼給sş。我想製作ss。我怎樣才能做到這一點。感謝您的回答。Flash RegExp問題

import RegExp.as; 
var pattern:Array = new Array(); 
pattern[0] = new RegExp("ş","s"); 

var patternReplace:Array = ["s"]; 

function decomposeUnicode(str:String):String 
{ 
    str = "şş" 
    for (var i = 0; i < pattern.length; i++) 
    { 
     str = str.replace(pattern[i], patternReplace[i]); 
    } 
    return str; 
} 

trace(decomposeUnicode()); 

回答

1

您所要做的就是在創建RegExp時定義全局標誌「g」。我不知道你是否真的想要定義dotall(指示是否匹配換行符),但是通過在第二個參數中設置「s」,你就是這麼做的。例如,我會讓它出現在那裏。

pattern[0] = new RegExp("ş","s","g"); 
+0

感謝答案。我怎樣才能使用它。例如str.replace(pattern [0])? –

+0

其餘的代碼確實有效,你需要做的就是設置全局標誌。只需將它添加到RegExp構造函數的參數中,然後設置模式[0]的值 – Exort

+0

Thanks Exort。我正在使用你的方法。有效。 –

0

這裏有一個簡寫:

str = str.replace(/ş/g, "s"); 
+0

是的,但我想他正在創建一個數組並循環,因爲他最終會處理一堆替換。如果情況並非如此,那麼您的解決方案就是要走的路 – Exort