$匹配输入字符串的结束位置。
如果正则只有精确匹配是没多大意义的,比如/hello/,也只能匹配字符串中的hello这个子串,正则表达式之所以强大,是因为其能实现模糊匹配,而模糊匹配,有两个方向上的模糊,横向模糊和纵向模糊。
横向模糊是一个正则可匹配的字符串的长度不是固定的,可以是多种情况的,其实现的方式是使用量词。譬如{m,n},表示连续出现最少m次,最多n次。比如/ab{2,5}c/表示匹配这样一个字符串,第一个字符是a,接下来是2到5个字符b,最后是字符c。
扩展资料:
注意事项:
在正则表达式中()里面的表达式,这些括号中的表达式匹配到的元素,会被捕获到内存中,就是上面preg_match和preg_match匹配的数组中除第一个以外的数组部分。
如果正则表达式中有子表达式,则正则表达式使用单引号括起来。
在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说该匹配不需要获取供以后使用。例如Windows (?!95|98|NT|2000)能匹配 Windows 3.1中的 Windows,但不能匹配 Windows 2000"中的 Windows。
参考资料来源:百度百科-正则表达式
按照你的要求,js正则表达式为 /^[0-9A-Za-z\-]+\$/g
我给你个结尾不是分号的javascript程序的例子,你看看吧
<html><head>
<script type=text/javascript>
var str='12345Aa-67890Bba'
var regex=/^[0-9A-Za-z\-]+\$/g
var a=regex.test(str)
alert(a)
</script>
</head>
<body>
</body>
</html>
运行结果
false
// 正则var str = '111_abc_222'
var match = str.match(/(^\d+)|(\d+$)/g)
var num1 = match[0]
var num2 = match[1]
alert(num1)
alert(num2)
// 不用非要正则吧
var str = '111_abc_222'
var arr = str.split('_')
var num1 = arr[0]
var num2 = arr[arr.length - 1]
alert(num1)
alert(num2)