Php 检查字段验证时删除toLocaleString格式化
我有一个表单字段(字符串),我将使用以下脚本为其添加一个“空格”分隔符:Php 检查字段验证时删除toLocaleString格式化,php,jquery,Php,Jquery,我有一个表单字段(字符串),我将使用以下脚本为其添加一个“空格”分隔符: <script type="text/javascript"> // https://stackoverflow.com/questions/19470499/how-to-format-input-box-text-as-i-am-typing-it jQuery(document).ready(function($) { $("#input_10").on('keyup', fun
<script type="text/javascript">
// https://stackoverflow.com/questions/19470499/how-to-format-input-box-text-as-i-am-typing-it
jQuery(document).ready(function($) {
$("#input_10").on('keyup', function(){
var n = parseInt($(this).val().replace(/\D/g,''),10);
$(this).val(n.toLocaleString());
});
</script>
谢谢 ASCII码160=不间断空格 尝试使用这个正则表达式捕获任何类型的空白或不可见分隔符
$re = '/\p{Z}/'; // (any kind of whitespace or invisible separator)
$str = '100 000'; // Your form input
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
获得匹配项/结果后,可以将其从变量中删除
在这里进行测试:
如果只是要删除的非中断空间,并且页面使用UTF-8编码,在这种情况下,非中断空间的编码为0xC2 0xA0…您也可以尝试以下操作:
$YourFormInput = trim($YourFormInput, "\xC2\xA0");
您只需使用:
preg_replace(“/[^\d]+/”,“,$my_var”)
是数字的(str_替换(“,”,“100000”)代码>为真
。向我们展示你的PHP代码。是的,但问题是toLocaleString可能添加了一个非空字符。如果我输入“100000”(呈现为“100000”),然后执行一个PHP:ord(substr($value,4,1))代码>我收到了ascii码160…也许可以看看从PHP字符串中删除ascii字符:哼,它没有捕获任何内容。我甚至尝试过使用以下命令直接替换chr(160):$formattednumber=str\u replace(chr(160),“”,$value)
但最后我在菱形字符中使用问号,而不是字符160。请看一下如何从PHP字符串中删除ASCII字符:
$YourFormInput = trim($YourFormInput, "\xC2\xA0");