我正在尝试匹配并替换具有-
(短划线)的行,其中仅包含空格或换行符,如" _ -_ _ _ _
"或" - _ _ _
"或" _ _ _ _ - _
",但不是" _ _ _ _ - _ asdf
"或" - _ _ _ whatever
"。如果字母之前出现,它将匹配,如在" _ asdf _ _ - _ _ _
"
我在textarea中运行它,但我一直在替换-
的所有实例。
$('textarea[name="yaml"]').val(
$('textarea[name="yaml"]').val().replace(/-\x20(?!.)/g,
""));
}
我还尝试了-\x20(?!\w \d)
和-\x20[^.]
以及其他组合。
答案 0 :(得分:1)
也许/-[\W]*$/m
?如果需要至少一个空格,请将*
更改为+
。
答案 1 :(得分:0)
"^.*- +$"
注意:这假设你真的只想要空格而不是空格" \ s"
示例代码:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to replace "blue" with "red" in the paragraph below:</p>
<p id="demo1">testing -</p>
<p id="demo2">testing -</p>
<p id="demo3">testing-</p>
<p id="demo4">-</p>
<p id="demo5">testing -</p>
<p id="demo6">testing - tester</p>
<p id="demo7">testing -tester</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
for (var i = 1; i <= 7; ++i) {
var ele = "demo" + i;
var str = document.getElementById(ele).innerHTML;
var res = str.replace(/^.*- +$/gi, "!replaced!");
document.getElementById(ele).innerHTML = res;
}
}
</script>
</body>
</html>
&#13;
答案 2 :(得分:0)
如果我正确地阅读这个问题,可以这样做。
# /^(?=[\S\s])[\sa-z]*[\s-]*$/
^ # BOS
(?= [\S\s] ) # Ensure string not empty
[\sa-z]* # Optional whitespaces or letters
[\s-]* # Optional whitespace or dash, but nothing else
$ # EOS