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");