我想把textarea的数据
双引号里的单引号替换成' 双引号不变,
单引号里的双引号替换成" 单引号不变。
其它普通的字符串不变,"ssssssssssssssssss", 'sssssssssssssssssssssss', 这样的都不换
//双引号里的单引号
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
//双引号里的单引号匹配成 throw "type property can't be changed";
throw "type property can't be changed";
elem[ name ] = value;
}
//双引号里的单引号匹配成 alert("can't be changed");
alert("can't be changed");//单引号里的双引号
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
//匹配成 throw 'type "property" cant be changed';
throw 'type "property" cant be changed';
elem[ name ] = value;
}
//匹配成 alert('cant be"""" changed');
alert('cant be"""" changed');<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
</head>
<script language=javascript>
function goit(){
var s=document.getElementById("m").innerHTML;
var matchx = /\n/;
var arr = s.split(matchx);
//?????
document.getElementById('result').innerText = arr.join(',');
}
</script>
<body>
<form method="post" name="form1">
<div align="center">
<textarea rows="18" name="S1" style="width:100%" id="m">
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw "type property can't be changed";
elem[ name ] = value;
}
alert("can't be changed");
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw 'type "property" cant be changed';
elem[ name ] = value;
}
alert('cant be"""" changed');
</textarea>
</div>
<input type="button" value="HTML" onclick="return goit()" />
<input type="reset" value="清空内容" />
</form>
<div id="result"></div>
</body>
</html>
双引号里的单引号替换成' 双引号不变,
单引号里的双引号替换成" 单引号不变。
其它普通的字符串不变,"ssssssssssssssssss", 'sssssssssssssssssssssss', 这样的都不换
//双引号里的单引号
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
//双引号里的单引号匹配成 throw "type property can't be changed";
throw "type property can't be changed";
elem[ name ] = value;
}
//双引号里的单引号匹配成 alert("can't be changed");
alert("can't be changed");//单引号里的双引号
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
//匹配成 throw 'type "property" cant be changed';
throw 'type "property" cant be changed';
elem[ name ] = value;
}
//匹配成 alert('cant be"""" changed');
alert('cant be"""" changed');<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
</head>
<script language=javascript>
function goit(){
var s=document.getElementById("m").innerHTML;
var matchx = /\n/;
var arr = s.split(matchx);
//?????
document.getElementById('result').innerText = arr.join(',');
}
</script>
<body>
<form method="post" name="form1">
<div align="center">
<textarea rows="18" name="S1" style="width:100%" id="m">
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw "type property can't be changed";
elem[ name ] = value;
}
alert("can't be changed");
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw 'type "property" cant be changed';
elem[ name ] = value;
}
alert('cant be"""" changed');
</textarea>
</div>
<input type="button" value="HTML" onclick="return goit()" />
<input type="reset" value="清空内容" />
</form>
<div id="result"></div>
</body>
</html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css"> </head>
<script language=javascript>function goit(){
var s=document.getElementById("m").innerHTML; var matchx=/\n/;
var match1=/.+'.+"/g;
var match2=/.+".+'/g; var a=s.split(matchx);
var ret=[];
var tmp;
for(var i=0;i<a.length;i++){
if(match1.test(a[i])){
ret[i]=a[i].replace(/"/g,"" ")
}else if(match2.test(a[i])){
ret[i]=a[i].replace(/'/g,"&acot ");
}else{
ret[i]=a[i];
}
}
alert(ret) document.getElementById('result').innerText = ret.join(",");
}
window.onload=function(){
} </script>
<body>
<form method="post" name="form1">
<div align="center">
<textarea rows="18" name="S1" style="width:100%" id="m">
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw "type property can't be changed";
elem[ name ] = value;
}
alert("can't be changed");
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw 'type "property" cant be changed';
elem[ name ] = value;
}
alert('cant be"""" changed');
</textarea>
</div>
<input type="button" value="HTML" onclick="return goit()" />
<input type="reset" value="清空内容" />
</form> <div id="result"></div>
</body>
</html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css"> </head>
<script language=javascript>function goit(){
var s=document.getElementById("m").innerHTML; var matchx=/\n/;
var match1=/.+'.+".+'/g;
var match2=/.+".+'.+"/g; var a=s.split(matchx);
var ret=[];
var tmp;
for(var i=0;i<a.length;i++){
if(match1.test(a[i])){
ret[i]=a[i].replace(/"/g,"" ")
}else if(match2.test(a[i])){
ret[i]=a[i].replace(/'/g,"&acot ");
}else{
ret[i]=a[i];
}
}
alert(ret) document.getElementById('result').innerText = ret.join(",");
}
window.onload=function(){
} </script>
<body>
<form method="post" name="form1">
<div align="center">
<textarea rows="18" name="S1" style="width:100%" id="m">
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw "type property can't be changed";
elem[ name ] = value;
}
alert("can't be changed");
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw 'type "property" cant be changed';
elem[ name ] = value;
}
alert('cant be"""" changed');
</textarea>
</div>
<input type="button" value="HTML" onclick="return goit()" />
<input type="reset" value="清空内容" />
</form> <div id="result"></div>
</body>
</html>
请教下多行注释匹配的问题
你看,我写的代码有问题呢
, /*
, *
, * $Date: '2008-05-24' 1"4:22:17 "-0400 (Sat, 24 May 2008) $
, * $Rev: 5685 $
, */
, <script>
不是以/*开头, */结尾的不能匹配
,*******************"ssssssssssssssssss"******
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript">
function goit(){
var s = document.getElementById("m").value;
var matchx = /\n/;
var m1 = /\/\*.+'.+\*\//g;
var m2 = /\/\*.+".+\*\//g;
var m3 = /\*.+'.+/g;
var m4 = /\*.+".+/g;
var a = s.split(matchx);
//alert(a);
var ret = [];
var tmp;
for (var i = 0; i < a.length; i++) {
if (m1.test(a[i]) || m2.test(a[i]) || m3.test(a[i]) || m4.test(a[i])) {
tmp = a[i].replace(/'/g, "'");
ret[i] = tmp.replace(/"/g, """);
} else {
ret[i] = a[i];
}
}
var result = ret.join(",");
document.getElementById('result').innerText = result;
}
</script>
</head>
<body>
<form method="post" name="form1">
<div align="center">
<textarea rows="18" name="S1" style="width:100%" id="m">
</textarea>
</div>
<input type="button" value="HTML" onclick="return goit()"/><input type="reset" value="清空内容" />
</form>
<div id="result">
</div>
</body>
</html>
var a = s.split(matchx);
//alert(a);
var ret = [];
var tmp;
for (var i = 0; i < a.length; i++) {
if (reg.test(a[i])) {
tmp = a[i].replace(/'/g, "'");
ret[i] = tmp.replace(/"/g, """);
} else {
ret[i] = a[i];
}
}
var result = ret.join(",");
alert(result);
换成
var reg=/\/\*([\S\s]*?)\*\//;
试试,这个是匹配/**/型的
还有,匹配/**/时候直接用
var s = document.getElementById("m").value;
整个s来匹配,不用分解成单行
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css"> </head>
<script language=javascript> function goit(){
var s=document.getElementById("m").innerHTML;
var reg=/\/\*([\S\s]*?)\*\//g;
var tmp=s.match(reg);
alert(tmp)
}
window.onload=function(){
} </script>
<body>
<form method="post" name="form1">
<div align="center">
<textarea rows="18" name="S1" style="width:100%" id="m">
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw "type property can't be changed";
elem[ name ] = value;
}
/*alert("can't be changed");
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
throw 'type "property" cant be changed';*/
elem[ name ] = value;
}
alert('cant be"""" changed');
</textarea>
</div>
<input type="button" value="HTML" onclick="return goit()" />
<input type="reset" value="清空内容" />
</form> <div id="result"></div>
</body>
</html>
var s=document.getElementById("m").innerHTML;
var reg = /(\/\/.*?\n)|(\/\*[\S\s]+?\*\/)/gi;
s = s.replace(reg, function(s, s1, s2){
return s.replace(/'/g, "'").replace(/"/g, """);
});
document.getElementById('result').innerText = s;这种匹配速度好像比按行匹配速度快呀!!!
var s="\"1'2'3\",'4\"5\"6','789',\"abc\"";
var reg=/"([\S\s]*?)"|'([\S\s]*?)'/gi;
s=s.replace(reg,function(s,s1,s2){
return s1?s.replace(/'/g,"'")
:s.replace(/"/g,""");
});alert(s);