<textarea id="wc" cols="110">粤A.C1234
粤A.HH123
粤A.C0123
粤A.C0423
AC1234
AHH123
AC0123
AC0423</textarea>
<script type="text/javascript">
var wc = document.getElementById("wc");
var p = /(粤)?(.)\.?(.{5})([\r\n]+|$)/g;
wc.value = wc.value.replace(p, function (a, b, c, d, e) {
return (b || "粤") + c + d + (/[\r\n]/.test(e) ? "," : "");
});
</script>
粤A.HH123
粤A.C0123
粤A.C0423
AC1234
AHH123
AC0123
AC0423</textarea>
<script type="text/javascript">
var wc = document.getElementById("wc");
var p = /(粤)?(.)\.?(.{5})([\r\n]+|$)/g;
wc.value = wc.value.replace(p, function (a, b, c, d, e) {
return (b || "粤") + c + d + (/[\r\n]/.test(e) ? "," : "");
});
</script>
解决方案 »
- 爬虫程序一定要从互联网上下载网页吗?
- 求实现打印的一个例子(可运行完整的代码)
- js写的扫雷游戏。高手过来完美一下
- ie8下使用showModalDialog刷新父窗口的问题
- javascript 控制 iframe的问题?
- 急求:新手关于一个页面刷新的问题
- 如何对图象进行分割?急!
- 一个奇怪的技术问题
- 怎样判断一个input的type为checkbox的选中属性??用 jQuery
- 调试错误 net::ERR_FILE_NOT_FOUND 这段代码意思
- 100分,有没有人能给我讲讲梅花雪的故事,他是不是开源了好多东西啊,我建议把他的作品以及精彩回复整理一下供大家学习
- 关于文件路径和转义符的问题
在Excel复制数据到文本域中,如果最后一个数据后面有回车符
当输入数据格式化后第一次是正常的,变成以下这样
粤AHH123,粤AC0123,粤AC0423,这不是重点,重点是当再按一次格式化就会变成这样
粤AHH123,粤AC0123,粤A粤C0423,
我试过好多次不同数据都是这样哦!还有对于中文的逗号",",没有进行处理哦!请大大继续加油帮帮忙哦!谢谢!
粤A.HH123
粤A.C0123
粤A.C0423
AC1234
AHH123
AC0123
AC0423</textarea>
<script type="text/javascript">
var wc = document.getElementById("wc");
var p = /(粤)?(.)\.?(.{5})([\r\n,,]+|$)/g;
wc.value = wc.value.replace(p, function (a, b, c, d, e) {
return (b || "粤") + c + d + (/[\r\n,,]/.test(e) ? "," : "");
});
</script>
忽忽,昨天没注意还要替换,
"string"
而是
"string "
之类的。。
但我又有一个问题问题:
我想完善这个功能,当输入
C1234
HH123
C0123
C0423
可以自动补充为
粤AC1234,粤AHH123,粤AC0123,粤AC0423
请问应该怎样改你的代码啊?
谢谢!
<textarea id="wc" cols="110">粤AHH123,粤AC0123,粤AC0423,粤A.C1234
粤A.HH123
粤A.C0123
粤A.C0423
AC1234
AHH123
AC0123
AC0423
C0423</textarea>
<script type="text/javascript">
function cc(){
var wc = document.getElementById("wc");
alert(wc)
var p = /(粤)?(.)?\.?(.{5})([\r\n,,]+|$)/g;
wc.value = wc.value.replace(p, function (a, b, c, d, e) {
return "粤A" + d + (/[\r\n,,]/.test(e) ? "," : "");
});
}
</script>
<input type="button" value="press" onclick="cc()">
学点东西
return (b || "粤") + (c||"A") + d + (/[\r\n,,]/.test(e) ? "," : "");
C1234
HH123
C0123
C0423
没效哦!!不能自动补充完整哦!
<textarea id="wc" cols="110">粤A.HH123,粤A.C1234
粤A.HH123
粤A.C0123
粤A.C0423
AC1234
AHH123
AC0123
AC0423
C0423
C0423
C0423</textarea>
<script type="text/javascript">
var wc = document.getElementById("wc");
var p = /(粤)?(.)??\.?(.{5})([\r\n,,]+|$)/g;
wc.value = wc.value.replace(p, function (a, b, c, d, e) {
return "粤A" + d + (e && ",");
});
</script>
if((a||"粤")){ //看这里,或运算应该是返回boolean型的
alert("true")
}
alert((a||"粤"))
var p = /.{0,3}?(.{5})([\r\n,,]+|$)/g;
wc.value = wc.value.replace(p, function (a, b, c) {
return "粤A" + b + (c && ",");
});
布尔操作 a || b 当且仅当a的值是true,或能够转换为true的时候返回a,否则返回b的值
也就是说表达式 a || b的值不是布尔值
if(a || b)是先求表达式的值,再将它的值转换为boolean
(.)??把?加在第2个后面不是很理解,你看看我的最后那个简单的思路,前面3个可有可无的东西的地位是一样的,为什么?加在(粤)?后不行,这里不是十分明白呀
(.)?是想匹配那个A什么的。
\.?是匹配 那个点有无都可以。。
(.{5})是匹配后5个
([\r\n,,]+|$)
这个是匹配结尾或者换行但是遇到。这个的话。。
C0423
(粤)?没有匹配到
(.)?则匹配到了C
然后\.?也没有匹配到。。
然后(.{5})匹配的是0423[\r] 是4个和以后回车键。。
所以。。
就是取非贪婪的匹配。。
就是说加了?就不会出现这样的匹配了。。
就是说。。刚那种情况(.)?? 就不会匹配到东西了。。而是.{5}会匹配到完整的C0423
主要还是因为.{5}这个式子不严格才会出现那样的情况。。^o^
忽忽。。
(b || 粤)
这里判断b是假的。。肯定就返回粤。因为粤有内容= true
但是b是真的。就是说匹配到粤就会返回b(当然。。这样属于多此一举动)
然后(c && ",")
这个的效果是两个全有效。则返回最后一个
如果有一个无效则返回无效的那个。。如果都无效则返回第一个貌似这样
var a = 0, b = "hello";
alert(a && "wc");
alert(b && "wc");
</script>
貌似都是false