Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:文本之间匹配,但数字之间不匹配_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式:文本之间匹配,但数字之间不匹配

Javascript 正则表达式:文本之间匹配,但数字之间不匹配,javascript,regex,Javascript,Regex,请帮忙。 我需要一个正则表达式(在javascript中使用)来将包含Unicode字符的文本中的“.”替换为“#”。 只有当“.”出现在文本之间而不是数字之间时,才会进行替换 输入:“Φψ.ABC.DEF.123.456” 所需输出:“Φψ#ABC#DEF#123.456” 有什么建议吗?试试这个: var str = "ΦΨ. ABC. DEF. 123.456"; str.replace(/[^\d.]+\.[^\d]/g, function (m) { return m.re

请帮忙。 我需要一个正则表达式(在javascript中使用)来将包含Unicode字符的文本中的“.”替换为“#”。 只有当“.”出现在文本之间而不是数字之间时,才会进行替换

输入:“Φψ.ABC.DEF.123.456”

所需输出:“Φψ#ABC#DEF#123.456”

有什么建议吗?

试试这个:

var str =  "ΦΨ. ABC. DEF. 123.456";

str.replace(/[^\d.]+\.[^\d]/g, function (m) {
    return m.replace('.', '#')
});
试试这个:

var str =  "ΦΨ. ABC. DEF. 123.456";

str.replace(/[^\d.]+\.[^\d]/g, function (m) {
    return m.replace('.', '#')
});

您可以在正则表达式中使用捕获组并使用反向引用来获得所需的结果:

var re=/(\D)\.(\D)/g;
var str='Φψ。美国广播公司。DEF。123.456';
var subst='$1#$2';
结果=str.replace(re,subst);

警报(结果)您可以在正则表达式中使用捕获组并使用反向引用来获得所需的结果:

var re=/(\D)\.(\D)/g;
var str='Φψ。美国广播公司。DEF。123.456';
var subst='$1#$2';
结果=str.replace(re,subst);

警报(结果)
@lor:我只是想知道你是否有句子开头或结尾有点的情况?它们也应该被替换吗?现在,他们不是。如果要将它们转换为
,请使用
var re=/(^\D)\.(\D)\.$/g
@lor:我只是想知道你是否有句子开头或结尾有点的情况?它们也应该被替换吗?现在,他们不是。如果要将它们转换为
,请使用
var re=/(^\D)\.(\D)\.$/g