如何获得/^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。
答案 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))));