我正在尝试这个代码,但我得到了这个错误:No ending delimiter '/' found
$form = " 2000,50";
$salary = preg_replace('/',', '.'/', $form); // No ending delimiter '/' found
echo $salary;
我不确定regex验证。
Regex只替换一个字符太过分了。为什么不直接这样做呢?
str_replace(',', '.', $form);
$salary = preg_replace('/,/', '.', $form);
但是,是的,您并不是真的想匹配模式,而是匹配constant的字符串。所以只需使用str_replace()
。
您可以简单地使用
str_replace(',','.',$form);
我不理解您的参数——我不确定字符串中应该包含什么,不包含什么。但对于preg_replace,搜索模式应该是一个字符串,并且该字符串还以分隔符(通常为"/")开头和结尾。我认为当搜索字符串已经在字符串中时,在搜索字符串周围需要斜杠是多余的,但这就是它的工作方式。
第二个参数应该是一个包含句号的字符串,不包含其他内容。这给出:
$salary=preg_replace('/,/','.',$form);
其他人认为str_replace可以将一个字符转换为另一个字符,这是正确的,但如果你想要的替换变得更复杂,那么preg_replace将是合理的。
字符串中的'/'用作正则表达式分隔符的开头,因此需要对其进行转义。正确的行应该是:
$salary = preg_replace('''/',', '.'/', $form);
我也很好奇为什么第二个参数是","。"/"而不是",/"。
编辑
啊,我现在明白了,行应该是:
$salary = preg_replace( '/,/', '.', $form);
我很困惑,因为你的例子中的第一个逗号应该是"插入字符串。