【问题标题】:c# regex to javascript时间:2019-05-01 标签:c#regex to javascript
【发布时间】:2012-01-05 20:48:07
【问题描述】:

我在服务器上有一行代码,我想用 javascript 移动到客户端页面。

string ThePhone = "1234567890";
string ThisFormat = Regex.Replace(ThePhone, @"(\d{3})(\d{3})(\d{4})", "$1-$2-$3");

它应该返回123-456-7890。如何将其更改为 javascript?

谢谢。

【问题讨论】:

  • @Marcus:尝试了几次试错更改。你能帮忙吗?
  • 科比的回答应该有效。这是给定示例工作的示例:jsfiddle.net/BBTfN

标签: c# javascript regex


【解决方案1】:

在这种情况下几乎完全一样:

phone = phone.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3');

注意事项:

  • 如果字符串可能包含多个电话,则需要 /g 标志 (/.../g)(但我们可能还需要 \b
  • .Net 中的 \d 匹配所有 Unicode 数字,在 JavaScript 中它仅匹配 [0-9]

【讨论】:

  • 此外,还有其他方法可以实现这一点 - 您可以在正确的位置插入破折号,或者将 /(\d{3})(\d{3})/ 替换为 '$1-$2-'
  • 它似乎不起作用;我知道它很接近,但我也一直在努力进行这种转换。它只包含一部手机;它是一个 10 位数字的字符串。当我提醒结果时,我得到相同的初始字符串。
  • @frenchie - 为我工作:jsbin.com/esoyat。您是否忘记了phone = 部分?
  • 好的,我明白了:在代码的前面一点,我循环遍历电话号码并对每个字符执行 parseInt 以查看它是否为 int。当它到达 0 时,它丢弃了那个字符,所以我实际上传递的是 123456789 而不是 10 位数字。感谢您的帮助。
猜你喜欢
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
相关资源
最近更新 更多