使用正则表达式从字符串中提取数字部分工作
Number extraction from string using regex working partially
我正在使用JavaScript从推文中提取以9开头、后跟其他9位数字的电话号码。
以下是我正在使用的正则表达式模式:
var numberPattern = /^9[0-9]{9}/;
这是模式匹配阶段:
var numberstring = JSON.stringify(data[i].text);
if(numberPattern.test(data[i].text.toString()) == true){
var obj={
tweet : {
status : data[i].text
},
phone : numberstring.match(numberPattern)
}
//console.log(numberstring.match(numberPattern));
stringarray.push(obj);
问题是,它只适用于少数数字,而不是所有数字。此外,我想修改正则表达式,使其也接受数字的+91前缀,并(或(拒绝数字中的0开头。我是regex的初学者,所以需要帮助。谢谢
示例:
#Chennai O-ve blood for @arun_scribbles 's friend's father surgery in few days. Pl call 9445866298. 15May. via @arun_scribbles
您的正则表达式模式似乎被设计为允许在开头使用9或8,但最好将该选项括在括号中:/^(9|8)[0-9]{9}/
。
要允许在开头使用可选的"+",请在后面加一个问号使其可选:/^'+?(9|8)[0-9]{9}/
。
若要允许除"0"之外的任何字符,请将(9|8)
替换为仅接受1-9:/^'+?[1-9][0-9]{9}/
的构造。
在您的示例中,电话号码不在行的开头,因此插入符号找不到它。如果您要在行的中间查找内容,则需要删除插入符号:/'+?[1-9][0-9]{9}/
。
var numberPattern = /([+]91)?9[0-9]{9}'b/;
试试这个正则表达式模式:['+]?[0-9]{1,4}['s]?[0-9]{10}
它接受任何带有+
、space
和10位数字的国家代码。
相关文章:
- 循环遍历数字和字母数组并仅提取数字
- 使用Selenium IDE从字符串中提取数字
- 从输入中提取数字,并插入一个等式javascript
- 从javascript中的字符串中收集/提取数字
- 使用正则表达式从字符串中提取数字
- 如何使用Javascript从字符串中提取数字
- 从字母数字值中提取数字
- 正则表达式 - 从 URL 中提取数字
- 使用正则表达式提取数字
- 如何使用javascript从字符串中提取数字
- 仅使用javascript提取数字
- 点击列表激活jquery Ajax并提取数字
- 从字符串中提取数字并将其存储在数组Javascript中
- 使用Birt脚本从字符串中提取数字
- 在JavaScript中,从美元金额中提取数字的最紧凑、最高效、最可靠的方法是什么
- 如何使用javascript从网站中提取数字
- 是否可以按顺序从数组中提取数字和运算符
- Regex-从捕获组中提取数字
- Javascript从不工作的字符串中提取数字
- 如何从多项式字符串中提取数字(包括+和-符号)