找到字符串中的上标给重新赋值,做个标记
function ToSBC(txtstring)
{
var text = $("#" + txtstring + "").val();
var tmp = text;
for (var i = 0; i < text.length; i++) {
if (!/^[\x00-\xff]*$/.test(text.charAt(i))) {
if (text.charAt(i) == "\u00b3") {
text.charAt(i) = "\u00b3";
}
tmp = "";
if (text.charCodeAt(i) == 32) {
tmp = tmp + String.fromCharCode(12288);
}
if (text.charCodeAt(i) < 127 ) {
tmp = tmp + String.fromCharCode(text.charCodeAt(i) + 65248);
}
}
}
$("#" + txtstring + "").textbox("setValue", tmp);
}
这样写的话报错,函数不能有返回值,求助!!!
text.charAt(i)方法返回的是一个字符串常量,不是变量,常量是不能被赋值的,你这等于是执行 "\u00b3" = "\u00b3" 当然不对了。
要改变字符串的内容只有对字符串变量整个的重新赋值 text = text.slice(0,i)+"\u00b3"+text.slice(i+1);。
而且你的字符串i的位置已经是"\u00b3"了,你还要再修改为 "\u00b3" 等于是字符串没有变化。不知道你的意图是什么?
你得return才有返回值呀
在for循环后面加一个return text试试?
我看见几个不能理解的地方:
1、第一行function ToSBC(txtstring) {,,,这个传进来的参数txtstring,我就没看你下面那里有用到过;
2、第二行var tmp = text; 首先,这个text我没看出来它是哪里来的,就算是上面有定义过这里不用加一个this.写成this.text?其次,你定义的tmp我也没看到下面哪里用到过。
3、你这个判断里面的操作我也不太理解,不知道是我看的不够细心还是什么哈,读到的意思就是判断张三的手是五个手指头,然后告诉张三的手“你是五个手指头”,好像没什么实际意义呢?
不太理解。