我想在JavaScript中編寫一個正則表達式來將像\123
這樣的模式發生解析爲相應的數字ASCII值。 65
被替換爲A
等。正則表達式不分析模式的連續出現
\
本身可以轉義爲\\
,因此\\65
變成\65
。
我面臨的問題是,連續發生的主要模式沒有正確解析。
\65#\97
變成A#a
。但\65\97
只成爲A\97
。
核心部分如下:
// Parse \65 but not \\65
input = input.replace(/(^|[^\\]{1})\\(\d{1,3})/g, function (m0, m1, m2) {
var n = parseInt(m2);
if (n < 256) {
return m1 + String.fromCharCode(n);
} else {
return m0;
}
});
說明同樣是可用的here
我猜誤差與正則表達式做小提琴,但沒有我自己看着辦到目前爲止。
等待任何見解:]
啊,我剛剛到達那裏。你*超過了我* * *! :-) – deitch 2014-11-23 13:07:04