var 广库之全角半角 = `
! !
“ "
# #
$ \\$
% %
& &
‘ '
( \\(
) \\)
* \\*
+ \\+
, ,
- -
. \\.
/ \/
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
: :
; ;
< <
= =
> >
? \\?
@ @
A A
B B
C C
D D
E E
F F
G G
H H
I I
J J
K K
L L
M M
N N
O O
P P
Q Q
R R
S S
T T
U U
V V
W W
X X
Y Y
Z Z
[ \\[
\ \\\
] \\]
^ \\^
_ _
` \`
a a
b b
c c
d d
e e
f f
g g
h h
i i
j j
k k
l l
m m
n n
o o
p p
q q
r r
s s
t t
u u
v v
w w
x x
y y
z z
{ \\{
| \\|
} \\}
~ ~`
function 转中文符号(参){
var 串库 = ``
var 果 = 参;
var 阵从 = 广库之全角半角.split("\n");
for(var i=0;i<阵从.length;i++){
var 几位 = 阵从[i].indexOf("\t");
var 串换 = 阵从[i].substr(几位+1);
var 智旨 = /[0-9a-zA-Z]/;
if(智旨.test(串换)){continue}
var 串为 = 阵从[i].substr(0,几位);
var 智换 = new RegExp(串换,"g");
果 = 果.replace(智换,串为);
}
return 果;
}
var 字符串 = "~!@#$←这些符号转。但中文不转,122数字不转,abcDEF英文不转";
console.log(转中文符号(字符串));
//果:^~!@#$←这些符号转。但中文不转,122数字不转,abcDEF英文不转
附之前不严谨的写法:
注:以上代码,让数字转为全角,英文也转为全角,而且前面还多了一个“^”,后面多了一个“¥”
作业:
1 想想为什么会出这些错误?
2 怎样把上面的代码变成一个翻译工具?
扩展应用:
function 转半角到全角(参){
var 串库 = ``
var 果 = 参;
var 阵从 = 广库之全角半角.split("\n");
for(var i=0;i<阵从.length;i++){
var 几位 = 阵从[i].indexOf("\t");
var 串换 = 阵从[i].substr(几位+1);
var 串为 = 阵从[i].substr(0,几位);
var 智换 = new RegExp(串换,"g");
果 = 果.replace(智换,串为);
}
return 果;
}
var 字符串 = "~!@#$←这些符号转、2500数字转,abcDEF英文转。但中文不转";
console.log(转半角到全角(字符串));
//果:~!@#$←这些符号转、2500数字转,abcDEF英文转。但中文不转
20210821 广