찾다
백엔드 개발PHP 튜토리얼javascript - PHP正则替换问题

js下正则是这样的:

<code>var str = "data\/ui_inner\/74\/";
str.replace(/\\/,"");
</code>

php如下这样写却不对:

<code>$auto_url = preg_replace('/\\/','', $str);
</code>

我的目的是替换字符串中的\为空,请问如何替换呢?

按照楼下的答案试了试还是不行呢。。
javascript - PHP正则替换问题

找到原因了,是因为json_encode()导致的,请问如何解决呢?我去google一下

回复内容:

js下正则是这样的:

<code>var str = "data\/ui_inner\/74\/";
str.replace(/\\/,"");
</code>

php如下这样写却不对:

<code>$auto_url = preg_replace('/\\/','', $str);
</code>

我的目的是替换字符串中的\为空,请问如何替换呢?

按照楼下的答案试了试还是不行呢。。
javascript - PHP正则替换问题

找到原因了,是因为json_encode()导致的,请问如何解决呢?我去google一下

javascript - PHP正则替换问题


除非楼主有洁癖, 否则不建议再去对 json_encode 的结果进行替换, 因为 json_encode/ 进行转义输出, 对于js来说, 它的内容 还是 /, 而不是 \/.

javascript - PHP正则替换问题

(PS:下面在测试的时候有注释代码里的var_dump, 只保留echo)
替换的:
javascript - PHP正则替换问题

不替换的:
javascript - PHP正则替换问题

1.html 的代码如下:

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
    type: "get",
    url: "f.php",
    dataType: "json",
    success: function(data) {
        console.log(data.url);
    }
});
</script>

PHP中提供了一个函数 preg_quote

<code>string preg_quote ( string $str [, string $delimiter = NULL ] )
</code>

preg_quote()需要参数 str 并向其中 每个正则表达式语法中的字符前增加一个反斜线。 这通常用于你有一些运行时字符串 需要作为正则表达式进行匹配的时候。

正则表达式特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! | : -

<code><?php $keywords = '$40 for a g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // 返回 \$40 for a g3\/400
</code></code>

所以以上代码可以这样写

<code><?php $str = "data\/ui_inner\/74\/";
$pattern = preg_quote('\\');
$auto_url = preg_replace('/'.$pattern.'/','', $str);
echo $auto_url;</code></code>

应该这么写

<code>$auto_url = preg_replace('/\\\\/','', $str);</code>

也是刚学到,因为在字符串中,'\'也是转义,'/\\/'就变成了'/\/',所以要四个。
也可以用str_replace

<code>$auto_url = str_replace('\\','', $str);</code>

PHP的单引号中仍然会转义\
所以你需要这么做

$auto_url = preg_replace('/\\\\/', '', "data\/ui_inner\/74\/");

改成四个\\\\

直接对json做正则替换是不安全的,因为如果业务逻辑有改变,你可能意外修改了其他的域,建议先decode之后修改好之后再重新encode

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경