将正则表达式后面的外观从python转换为javascript
我在将正则表达式后面的外观从python转换为javascript,javascript,python,regex,lookbehind,Javascript,Python,Regex,Lookbehind,我在python中编写了一个正则表达式模式,它与逗号分隔的手机号码列表相匹配。模式是: ^\+?[0-9]+((,?)(?(1)(\+?[0-9]+)))*$ 它与任何移动电话号码匹配,涉及以下约束: 每个电话号码可以以+开头;禁止使用任何其他+字符 每个电话号码都可以以00开头 空间不可接受;不是中间空间,也不是外围设备 我的模式在python中运行良好,但我想将其转换为javascript版本,以便在angular项目中使用它 我在谷歌上搜索了javascript look behind
python
中编写了一个正则表达式模式,它与逗号分隔的手机号码列表相匹配。模式是:
^\+?[0-9]+((,?)(?(1)(\+?[0-9]+)))*$
它与任何移动电话号码匹配,涉及以下约束:
+
开头;禁止使用任何其他+
字符00
开头python
中运行良好,但我想将其转换为javascript
版本,以便在angular
项目中使用它
我在谷歌上搜索了javascript look behind regex,但我不知道如何利用javascript
中的索引look behind;?(1)
部分
有没有办法将这个
python
regex转换成javascript
或任何其他等效的regex来满足我的需要?鉴于您的regex似乎没有使用lookbehinds或条件的no子句,我相信这应该可以做到:
^\+?[0-9]+(,\+?[0-9]+)*$
模式中没有lookbebhind,这里有一个条件构造,我怀疑它是否能像预期的那样工作,因为您的组1是
(,?)(?(1)(\+?[0-9]+)
。我想你想要的是一个简单的模式。我不确定我是否理解这里条件的用法。在我看来,你可以直接在逗号后添加yes子句。你认为为什么应该这样做?因为它匹配问题中约束条件下的数字。我错过了什么吗?还在想问题是什么-你的模式对我所有的案子都有效。