i am trying to split each textarea line that starts with “-” or “- ” or ” -” into individual span element with specific ID 1,2,3,4 etc..
The closest regex code i found is ^-.+
but it wont work for me like it works on:
https://regex101.com/r/yCOvyR/4
My current code is available also here: http://jsfiddle.net/ribosed/468emjct/59/
Thanks for any help.
$(document).ready(function() { $("#txt").keyup(function() { entered = $('#txt').val() lines = entered.split(/n/); spans = ""; for (var i in lines) { spans += "<span style='color:red;'>- " + lines[i] + "</span><br/>"; } $(".res").html(spans); }); });
.row { background: #f8f9fa; margin-top: 20px; padding: 10px; } .col { border: solid 1px #6c757d; }
<head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> </head> <body> <!-- Optional JavaScript; choose one of the two! --> <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script> <!-- Bootstrap docs: https://getbootstrap.com/docs --> <div class="container"> <div class="row"> <div class="col-12"> <form> <textarea id="txt" rows="5" cols="60" placeholder="Type something here..."></textarea> </form> </div> <div class="col-12 res"></div> </div> </div> </body>
plit and match proces should be achieved while user type in textarea. I tried to use .keyup()
Advertisement
Answer
You’re not checking the Regex in your code, so it’s out of question to ask “why” it’s not working.
I think this should work:
$(document).ready(function() { const regex = /^s*-s*/; $("#txt").keyup(function() { const entered = $('#txt').val() const lines = entered.split(/n/); let spans = ""; for (const line of lines) { if (regex.test(line)) { spans += "<span style='color:red;'>- " + line.replace(regex, '') + "</span><br/>"; } } $(".res").html(spans); }); });
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <div class="container"> <div class="row"> <div class="col-12"> <form> <textarea id="txt" rows="5" cols="60" placeholder="Type something here..."></textarea> </form> </div> <div class="col-12 res"></div> </div> </div>