正则表达式:不是一行的开头
Regex: Not the beginning of a line?
我有一个这样的字符串:----------- 243f,33f----
现在我想删除所有的-
字符,除了第一个-
, ,
和数字。结果应该是-243,33。我该怎么做呢?
您的问题仍然不是很清楚,但这会产生您想要的输出:
'----------- 243f,33f----'.replace(/(?!^-)[^'d,]+/g, '')
在确保字符串开头的第一个字符不是连字符之后,regex匹配除数字或逗号以外的任何字符中的一个或多个。
EDIT:对于那些使用(?<!^)
提出正则表达式然后撤回它们的人,因为JavaScript不支持向后看,这是不必要的。我知道这些答案还有其他问题,但为了匹配"不是字符串的开头",(?!^)
工作得很好。
'----------- 243f,33f----'.replace(/[^-0123456789,]/g, '').replace(/^-/, 'x').replace(/-/g, '').replace(/x/, '-')
output: '-243,33'
替换第二个字符ala的子字符串
string.charAt(0) + string.substring(1).replace("-","");
但是我不知道语法是否正确
编辑:哦,如果你也想删除f你可以删除任何非数字和非逗号:
string.charAt(0) + string.substring(1).replace("[^0-9,]","");
试试这个:
(?:(^-)|[^'d,'r'n])
并替换为
$1
在Regexr上查看
这有点困难,因为Javascript不支持向后看。因此,如果在行开始处有-
,它将被自己替换,对于其他匹配$1
是空的,因此将被替换为空
相关文章:
- 对id以某个字符串开头的元素进行计数
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如果元素's的ID以数字开头
- 动态插入的表:JQuery未检测到最后一行
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 如何在Angular UI网格中选择下一行
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- Jquery幻灯片以一行左侧的图像开始,但我希望它从右端开始
- 从重复的javascript数组结果集中只获取一行
- 在GridView中,当单击复选框时,在网格的同一行中使用JavaScript将标签中的值添加到TextBox
- html5画布在同一行中写入多个字体
- Angular JS在一行中查找最小值
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- AngularJS指令模板开头的注释
- 谷歌地图-数据库中的标记只显示最后一行的信息
- 如何确保JQuery的一行在另一行之前运行
- 如何将以特定模式开头的每一行转移到字符串的末尾
- 如何检测位置是否位于文本区域中一行的开头
- 正则表达式:不是一行的开头
- 如何在一行的开头或结尾匹配正则表达式?