JS / Regexp用于特定模式

时间:2017-04-16 07:58:28

标签: javascript regex

如何获得/^1m1/.test(text)以查看强项是否以以下模式开始:"数字,m | M,str"。

如果字符串以字符串开头,我想返回的一些示例:" 1m1"," 1m01 Text"," 101M01s Other Text",& #34; 1m002 Text"," 2M15B Another Text"。

一些应该返回false的示例: " 10文字"," 1m其他文字","文字1m1","只是一些文字"," 101 1m1&#34 ;

也许它可以分成两个变量?所以" 1m1"将仅填充var1," 101m2abc文本任意长度"将填充var1(101m2abc)和var2(文本任意长度)和"文本任意长度"只会填补var2。

3 个答案:

答案 0 :(得分:2)

她是如何做到的:

  

^:锚定文本的开头

     

[0-9]\d{1}:接受0-9中的任何数字(提示:如果您不想与' 9'匹配,您可以使用{{1 }})

     

[0-8]:匹配' m'或者' M' (提示:我更喜欢在这里使用不区分大小写的匹配,你可以使用(m|M)标志)

总结一下

i

(我在这里使用了不区分大小写的匹配)



/^\d{1}m./i.test(str)




答案 1 :(得分:1)

你可以查找一些数字,一个m,无关紧要,一些数字和一些非数字可选。



var strings = ['1m1', '1m01 Text', '101M01s Other Text', '1m002 Text', '2M15B Another Text', '10 Text', '1m Other Text', 'Text 1m1', 'Just Some Text', '101 1m1'];

strings.map(s => console.log(/^\d+m\d+\D*$/i.test(s), s));

.as-console-wrapper { max-height: 100% !important; top: 0; }




答案 2 :(得分:1)

假设空格以外的任何字符都可以跟m,那么我的正则表达式将是/^\d+m\S\.*/i。因此;



console.log(["10 Text", "1m Other Text", "Text 1m1", "Just Some Text", "101 1m1"].some(s => (/^\d+m\S\.*/i.test(s))));

console.log(["1m1", "1m01 Text", "101M01s Other Text", "1m002 Text", "2M15B Another Text"].every(s => (/^\d+m\S\.*/i.test(s))));