js与php正则小问题

hphper 发布于 2014/06/30 09:02
阅读 146
收藏 0

看一下代码:

为啥在里没把开始的单引号去掉呢?

<?php
$str="'5.23.98.130:80'";
$p="#^\s*|\s*$|,|'#";
$str1=preg_replace($p, '', $str);
echo $str1;
echo "<hr/>";
?>
<script type="text/javascript">
var str="'5.23.98.130:80'";
document.write(str.replace(/^\s*|\s*$|,|'/g,''));
document.write("<hr/>");
document.write(str.replace(/'|^\s*|\s*$|,/g,''));
</script>



在js里把'放在正则前面就好,为啥放在后面去不掉开始的'呢
str.replace(/^\s*|\s*$|,|'/g,'')
就是 为啥去不掉开始的'呢

放前面就能去掉

难道受

^\s*|\s*$


的影响吗
加载中
0
yiane
yiane

^\s*|\s*$
 以空格开头,虽然你的意思是以空格开头或结尾,但是正则会默认为必须以空格开头,为避免歧义还是不要把^放在第一个
hphper
hphper
回复 @yiane : php可以,php和js在使用正则时为什么会有这种区别 啊?
hphper
hphper
回复 @yiane : php可以,php和js在使用正则时为什么会有这种区别 啊?
yiane
yiane
回复 @hphper : ^\s*'?(.*?)'?\s*$试试,开头的标记^优先级比较高,会有些意向不到的效果,不要用在或条件里面
hphper
hphper
那他为啥能去掉 最后一个单引号呢?
hphper
hphper
我加括号了 也没用啊
下一页
返回顶部
顶部